在Windows-7 64位系统上,引用IIS 7.5的wcf ria服务类库中的外部库时出错

在Windows-7 64位系统上,引用IIS 7.5的wcf ria服务类库中的外部库时出错,iis,dll,silverlight-4.0,iis-7,wcf-ria-services,Iis,Dll,Silverlight 4.0,Iis 7,Wcf Ria Services,为了创建Silverlight 4.0应用程序,我从VisualStudio2010中的模板“业务应用程序”开始。然后我添加了一个项目WCF-RIA类库,并在主ASP.Net项目中引用了它。然后在WCF-RIA项目中,我添加了对由我的合作者创建的外部.DLL的引用,我从中获取数据 问题是:当我使用VisualStudioDevelopmentServer(Cassini)执行应用程序时,一切都正常。当我尝试在IIS上执行应用程序(Windows-7 64位上的7.5版)时,我得到一个由外部.DL

为了创建Silverlight 4.0应用程序,我从VisualStudio2010中的模板“业务应用程序”开始。然后我添加了一个项目WCF-RIA类库,并在主ASP.Net项目中引用了它。然后在WCF-RIA项目中,我添加了对由我的合作者创建的外部.DLL的引用,我从中获取数据

问题是:当我使用VisualStudioDevelopmentServer(Cassini)执行应用程序时,一切都正常。当我尝试在IIS上执行应用程序(Windows-7 64位上的7.5版)时,我得到一个由外部.DLL引用引起的错误(事实上,如果我删除了.DLL,一切都会再次正常工作)

我的应用程序必须按原样配置,然后我会问:问题是什么,以及(特别是)如何解决

提前非常感谢

皮莱吉

这就是错误:

“/MyApp”应用程序中出现服务器错误


无法加载文件或程序集“MyLibrary”或其依赖项之一。加共体的目标是制定非正确的计划。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.BadImageFormatException:无法加载文件或程序集“MyLibrary”或其依赖项之一。加共体的目标是制定非正确的计划

源错误:

在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别

程序集加载跟踪:以下信息有助于确定无法加载程序集“MyLibrary”的原因

警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 注意:程序集绑定失败日志记录会带来一些性能损失。 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]

堆栈跟踪:

[BadImageFormatException:无法加载文件或程序集“MyLibrary”或其某个依赖项。Tentivio di Carcare未编程未格式化未正确。] System.Reflection.RuntimeAssembly.\u nLoad(AssemblyName文件名、字符串代码基、证据assemblySecurity、RuntimeAssembly位置提示、StackScrawMark和stackMark、Boolean throwOnFileNotFound、Boolean ForInspection、Boolean suppressSecurityChecks)+0 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据assemblySecurity,StackScrawMark&stackMark,用于内省的布尔值,布尔值suppressSecurityChecks)+567 System.Reflection.RuntimeAssembly.InternalLoad(字符串assemblyString、证据assemblySecurity、StackScrawMark和stackMark、布尔值ForInterspection)+192 System.Reflection.Assembly.Load(字符串assemblyString)+35 System.Web.Configuration.CompliationSection.LoadAssemblyHelper(字符串assemblyName,布尔starDirective)+147

[ConfigurationErrorsException:无法加载文件或程序集“MyLibrary”或其某个依赖项。Tentivio di Carcare未编程未格式化未正确。] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串assemblyName,Boolean starDirective)+1298 System.Web.Configuration.CompliationSection.LoadAllAssembliesFromAppDomainBinDirectory()+430 System.Web.Configuration.AssemblyInfo.get_AssemblyInternal()+104 System.Web.Compilation.BuildManager.GetReferenceAssembly(CompilationSection compConfig)+334 System.Web.Compilation.BuildManager.CallPreStartInitMethods()+264 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager、IApplicationHost appHost appHost、IConfigMapPathFactory configMapPathFactory、HostingEnvironmentParameters hostingParameters、PolicyLevel PolicyLevel、Exception appDomainCreationException)+1021

[HttpException(0x80004005):无法加载文件或程序集“MyLibrary”或其依赖项之一。Tentivio di Carcare未编程未格式化未正确。] System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+646 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequestWR,HttpContext上下文)+771



版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.0.30319.1

好的,我发现,问题是DLL是为32位系统构建的,而IIS默认情况下只允许为操作系统的同一cpu构建文件(我的是64位)。要解决此问题,有两个选项:为64位cpu重新构建DLL或更改应用程序池的属性“允许32位应用程序”