【发布时间】:2010-09-25 13:38:29
【问题描述】:
这个问题与一个 ASP.NET 网站有关,最初是在 VS 2005 中开发的,现在在 VS 2008 中开发。
本网站使用两个非托管外部 DLL,它们不是 .NET,我没有编译它们的源代码,必须按原样使用它们。
该网站在 Visual Studio 中运行良好,可以正确定位和访问这些外部 DLL。但是,当网站发布在网络服务器(运行 IIS6 和 ASP.NET 2.0)而不是开发 PC 上时,它无法定位和访问这些外部 DLL,并且我收到以下错误:
Unable to load DLL 'XYZ.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
外部 DLL 以及包装它们的托管 DLL 以及网站的所有其他 DLL 都位于网站的 bin 目录中。
搜索这个问题发现许多其他人似乎在从 ASP.NET 网站访问外部非 .NET DLL 时遇到同样的问题,但我还没有找到可行的解决方案。
我尝试了以下方法:
- 运行 DEPENDS 以检查依赖关系以确定前三个 都是在System32目录中的路径,最后是在.NET 2 框架。
- 我将这两个 DLL 及其依赖项放入 System32并重新启动服务器,但网站仍然存在 无法加载这些外部 DLL。
- 授予 ASPNET、IIS_WPG 和 IUSR(针对该服务器)的全部权限 网站bin目录并重新启动,但网站仍然无法 加载这些外部 DLL。
- 将外部 DLL 作为现有项目添加到项目并设置 他们的“复制到输出”属性为“始终复制”,以及网站 仍然找不到 DLL。
- 还将他们的“构建操作”属性设置为“嵌入式资源”和 网站仍然找不到 DLL。
任何有关此问题的帮助将不胜感激!
【问题讨论】:
标签: asp.net dll iis-6 unmanaged