我正在尝试运行我在Visual Studio 2012中创建的WCF服务。
我在页面中遇到错误。
我搜索了一下,我已经尝试了几件事。 1)在应用程序池中启用32位应用程序 2)将项目属性中的目标设为“任何CPU” 3)删除临时文件,回收应用程序池,重置IIS等> Exception Details: System.BadImageFormatException: Could not load file > or assembly 'dllname' or one of its dependencies. An attempt was made > to load a program with an incorrect format. > > -------------------------------------------------------------------------------- Assembly Load Trace: The following information can be helpful to > determine why the assembly 'dllname' could not be loaded. > > === Pre-bind state information === LOG: User = IIS APPPOOL\DefaultAppPool LOG: DisplayName = dllname (Partial) WRN: > Partial binding information was supplied for an assembly: WRN: > Assembly Name: dllname | Domain ID: 2 WRN: A partial bind occurs when > only part of the assembly display name is provided. WRN: This might > result in the binder loading an incorrect assembly. WRN: It is > recommended to provide a fully specified textual identity for the > assembly, WRN: that consists of the simple name, version, culture, and > public key token. WRN: See whitepaper > http://go.microsoft.com/fwlink/?LinkId=109270 for more information and > common solutions to this issue. LOG: Appbase = > file:///D:/wwwroot/website/WebServices/ LOG: Initial PrivatePath = > D:\wwwroot\website\WebServices\bin Calling assembly : (Unknown). > === LOG: This bind starts in default load context. LOG: Using application configuration file: > D:\wwwroot\website\WebServices\web.config LOG: Using host > configuration file: > C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config LOG: Using > machine configuration file from > C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. > LOG: Policy not being applied to reference at this time (private, > custom, partial, or location-based assembly bind). LOG: Attempting > download of new URL > file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary > ASP.NET Files/webservices/febcb7de/76686d13/dllname.DLL. LOG: > Attempting download of new URL > file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary > ASP.NET Files/webservices/febcb7de/76686d13/dllname/dllname.DLL. LOG: > Attempting download of new URL > file:///D:/wwwroot/website/WebServices/bin/dllname.DLL. ERR: Failed to > complete setup of assembly (hr = 0x8007000b). Probing terminated. > > -------------------------------------------------------------------------------- Stack Trace: > > [BadImageFormatException: Could not load file or assembly 'dllname' 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, IntPtr pPrivHostBinder, Boolean > throwOnFileNotFound, Boolean forIntrospection, Boolean > suppressSecurityChecks) +0 > System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String > codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, > StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean > throwOnFileNotFound, Boolean forIntrospection, Boolean > suppressSecurityChecks) +34 > System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName > assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, > StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean > throwOnFileNotFound, Boolean forIntrospection, Boolean > suppressSecurityChecks) +152 > System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, > Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr > pPrivHostBinder, Boolean forIntrospection) +77 > System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, > Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean > forIntrospection) +16 System.Reflection.Assembly.Load(String > assemblyString) +28 > System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String > assemblyName, Boolean starDirective) +38 > > [ConfigurationErrorsException: Could not load file or assembly > 'dllname' 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) +752 > System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() > +218 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo > ai) +130 > System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection > compConfig) +170 > System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() > +91 System.Web.Compilation.BuildManager.CallPreStartInitMethods(String > preStartInitListPath) +258 > System.Web.Compilation.BuildManager.ExecutePreAppStart() +135 > System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager > appManager, IApplicationHost appHost, IConfigMapPathFactory > configMapPathFactory, HostingEnvironmentParameters hostingParameters, > PolicyLevel policyLevel, Exception appDomainCreationException) +516 > > [HttpException (0x80004005): Could not load file or assembly 'dllname' > or one of its dependencies. An attempt was made to load a program with > an incorrect format.] > System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9873784 > System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) > +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest > wr, HttpContext context) +254 > > > > --------------------------------------------------------------------------------
如果您有任何其他建议,请提供帮助。
答案 0 :(得分:3)
看起来您正在尝试将64位程序集加载到32位应用程序池中。我这样说是因为我在堆栈跟踪中看到C:\Windows\Microsoft.NET\Framework\v4.0.30319\
。如果它是64位应用程序池,则使用Framework64
。禁用“启用32位”并重试。