2011-03-09 73 views
2

IN VS 2010正常工作,但在IIS 7中出現此錯誤。 Windows是x64,看起來gecko是x86編譯的。但是,爲什麼在VS 2010工作呢?無法加載文件或程序集「Skybound.Gecko」或其某個依賴項。試圖加載格式不正確的程序

Server Error in '/' Application. 
Could not load file or assembly 'Skybound.Gecko' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.BadImageFormatException: Could not load file or assembly 'Skybound.Gecko' or one of its dependencies. An attempt was made to load a program with an incorrect format. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Assembly Load Trace: The following information can be helpful to determine why the assembly 'Skybound.Gecko' could not be loaded. 

WRN: Assembly binding logging is turned OFF. 
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. 
Note: There is some performance penalty associated with assembly bind failure logging. 
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. 


Stack Trace: 

[BadImageFormatException: Could not load file or assembly 'Skybound.Gecko' or one of its dependencies. An attempt was made to load a program with an incorrect format.] 
    System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0 
    System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) +567 
    System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +192 
    System.Reflection.Assembly.Load(String assemblyString) +35 
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +118 

[ConfigurationErrorsException: Could not load file or assembly 'Skybound.Gecko' or one of its dependencies. An attempt was made to load a program with an incorrect format.] 
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11392147 
    System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +484 
    System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +127 
    System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334 
    System.Web.Compilation.BuildManager.CallPreStartInitMethods() +280 
    System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1087 

[HttpException (0x80004005): Could not load file or assembly 'Skybound.Gecko' or one of its dependencies. An attempt was made to load a program with an incorrect format.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11524352 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141 
    System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +11356670 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 

回答

13

編輯您的應用程序池高級proeprties,您應該找到一個Enable 32-Bit Applications標誌並將其設置爲true。確保使用平臺目標x86在Visual Studio中進行編譯。 enter image description here

0

如果它適用於VS2010應該在IIS7工作。

  1. skyboud.gecko有一些依賴項無法找到。瞭解依賴關係的最好方法是使用redgate反射器。 還在服務器上將以下密鑰設置爲HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)爲1 。 (P.S不知道你的環境是否可行) 日誌通常解釋哪個程序集無法加載。

然後你可以進一步T.S的問題。

+1

*試圖加載程序的格式不正確*通常意味着x86與x64,通常是加載32位程序集的Any CPU編譯程序,但運行在64位操作系統上。 – 2011-03-09 12:29:46

相關問題