繁体   English   中英

无法加载文件或程序集“ idrsnet15.dll”或其依赖项之一。 指定的模块无法找到

[英]Could not load file or assembly 'idrsnet15.dll' or one of its dependencies. The specified module could not be found

我正在尝试使用这些配置将第三方C#dll添加为Asp.net WebService项目中的资源。

C#DLL在具有运行时版本(4.0.30319)的x64环境中的dotnet Framework 4中构建。
我们正在使用VS 2010框架版本4.0.30319 RTMRel; 在ASP.Net Web服务项目配置下,我们将目标框架4设置为目标x64平台。

我需要在我的Web服务应用程序中使用此DLL,但是在通过IIS浏览它时遇到运行时异常。

----------------------------错误详细信息-------------------- ----------------------------------------

无法加载文件或程序集“ idrsnet15.dll”或其依赖项之一。 指定的模块无法找到。 说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集“ idrsnet15.dll”或其依赖项之一。 指定的模块无法找到。

源错误:

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

堆栈跟踪:

[FileNotFoundException:无法加载文件或程序集“ idrsnet15.dll”或其依赖项之一。 指定的模块无法找到。]
System.Reflection.RuntimeAssembly._nLoad(AssemblyName文件名,字符串codeBase,证据AssemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,布尔throwOnFileNotFound,布尔值用于自省,布尔值detectSecurityChecks)+0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据assemblySecurity,StackCrawlMark&stackMark,用于自省的布尔值,用于取消检查的布尔值)+567
System.Reflection.RuntimeAssembly.InternalLoad(字符串assemblyString,证据AssemblySecurity,StackCrawlMark&stackMark,用于自省的布尔值)+192 System.Reflection.Assembly.Load(字符串assemblyString)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串assemblyName,布尔型starDirective)+118

[ConfigurationErrorsException:无法加载文件或程序集'idrsnet15.dll'或其依赖项之一。 指定的模块无法找到。]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串assemblyName,布尔型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,HostingEnvironmentParametershostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException)+1087

[HttpException(0x80004005):无法加载文件或程序集'idrsnet15.dll'或其依赖项之一。 找不到指定的模块。] System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+11524352
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext上下文)+4782309

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1 ----------------------------错误详细信息------------ ------------------------------------------------

我们通过选择3.5框架来创建Asp.net项目,然后在应用程序配置下设置目标框架4.0。

我可以在以下路径下看到TempAsp.net文件,包括程序集和第三方dll:C:\\ Windows \\ Microsoft.NET \\ Framework64 \\ v4.0.30319 \\ Temporary ASP.NET Files \\ myocrapp \\ f4fd840d \\ f71f8f0e \\ assembly \\ dl3 \\ 1a6aa3d5 \\ 00bb235d_957bcf01

根据我的理解,首先检查您是否正确地包含了第三方dll参照(在发布文件夹或虚拟目录中存在),第二件事是您为IIS提供了足够的访问权限来访问第三方dll,因此您可以将IIS虚拟目录设置为可以访问IIS用户帐户。

您也可以使用Dependency Walker来了解您的第三方dll( http://dependencywalker.com/ )所需的依赖程序集,并且系统中存在所有必需的文件,还请检查与第三方有关的版本信息dll(因为X64和x86不同,在某些情况下可能不会加载)。

感谢Ashok的贡献。

我们通过使用IDRS非托管dlls(其他IDRS非托管dll所在的路径)的值配置“ PATH”环境变量解决了该异常,因为当IIS部署应用程序时,它仅将托管dll部署到了临时文件夹,但仍保留托管的第三方dll仍需要成功加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM