如果你将應用程式生成x86而不是Any CPU時,在64位作業系統中不會出錯錯誤,而在32位作業系統中可能會出現以下錯誤:
“/MyASP”應用程式中的伺服器錯誤。
未能加載檔案或程式集“MyASP”或它的某一個依賴項。生成此程式集的運作時比目前加載的運作時新,無法加載此程式集。
說明: 執行目前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤資訊,以了解有關該錯誤以及代碼中導緻錯誤的出處的詳細資訊。
異常詳細資訊: System.BadImageFormatException: 未能加載檔案或程式集“MyASP”或它的某一個依賴項。生成此程式集的運作時比目前加載的運作時新,無法加載此程式集。
源錯誤:
執行目前 Web 請求期間生成了未處理的異常。可以使用下面的異常堆棧跟蹤資訊确定有關異常原因和發生位置的資訊。 |
程式集加載跟蹤: 下列資訊有助于确定程式集“MyASP”無法加載的原因。
=== 預綁定狀态資訊 ===
日志: 使用者 = RD-SIMON-291\Simon
日志: DisplayName = MyASP
(Partial)
日志: Appbase = file:///D:/SharpDevelop Projects/MyASP/MyASP/
日志: 初始 PrivatePath = D:\SharpDevelop Projects\MyASP\MyASP\bin
調用程式集: (Unknown)。
===
日志: 此綁定從 default 加載上下文開始。
日志: 正在使用應用程式配置檔案: D:\SharpDevelop Projects\MyASP\MyASP\web.config
日志: 使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config 的計算機配置檔案。
日志: 此時沒有為引用應用政策(私有、自定義、分部或基于位置的程式集綁定)。
日志: 試圖下載下傳新的 URL file:///C:/Users/Administrator/AppData/Local/Temp/Temporary ASP.NET Files/myasp/be5834ef/4f369d9c/MyASP.DLL。
日志: 試圖下載下傳新的 URL file:///C:/Users/Administrator/AppData/Local/Temp/Temporary ASP.NET Files/myasp/be5834ef/4f369d9c/MyASP/MyASP.DLL。
日志: 試圖下載下傳新的 URL file:///D:/SharpDevelop Projects/MyASP/MyASP/bin/MyASP.DLL。
錯誤: 未能完成程式集的安裝(hr = 0x8013101b)。探測終止。
|
堆棧跟蹤:
[BadImageFormatException: 未能加載檔案或程式集“MyASP”或它的某一個依賴項。生成此程式集的運作時比目前加載的運作時新,無法加載此程式集。]
System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +78
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +438
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +305
System.Reflection.Assembly.Load(String assemblyString) +50
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +116
[ConfigurationErrorsException: 未能加載檔案或程式集“MyASP”或它的某一個依賴項。生成此程式集的運作時比目前加載的運作時新,無法加載此程式集。]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +1026
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +339
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +85
System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +54
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +230
System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +131
System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, String outputAssemblyName) +42
System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +287
System.Web.Compilation.BuildManager.CompileGlobalAsax() +50
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +482
[HttpException (0x80004005): 未能加載檔案或程式集“MyASP”或它的某一個依賴項。生成此程式集的運作時比目前加載的運作時新,無法加載此程式集。]
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +90
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +607
System.Web.Compilation.BuildManager.CallAppInitializeMethod() +45
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +971
[HttpException (0x80004005): 未能加載檔案或程式集“MyASP”或它的某一個依賴項。生成此程式集的運作時比目前加載的運作時新,無法加載此程式集。]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +765
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +138
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +361
|
版本資訊: Microsoft .NET Framework 版本:2.0.50727.5456; ASP.NET 版本:2.0.50727.5477
解決方法:
将應用程式生成為Any CPU就可以了
反之,如果系統是64位的Win7,就應該将新項目的生成目标平台改為x86
綜上:
64位的Win7 解決方案的生成目标平台設定為x86
32位作業系統 解決方案的生成目标平台設定為AnyCPU
另外一個網友的問題解決方法:
我遇到過這個問題有兩次,不過環境不同。
第一次:Windows 2008 Server R2 64位;
第二次:Windows 7 64位;
原因分析:作業系統是64位的,但釋出的程式引用了一些32位的ddl,是以出現了相容性的問題。
解決方案:IIS——應用程式池——進階設定——啟用32位應用程式 :true。