小编Wer*_*g38的帖子

非托管DLL无法在ASP.NET服务器上加载

这个问题涉及一个ASP.NET网站,最初是在VS 2005中开发的,现在是在VS 2008中开发的.

这个网站使用两个非托管的外部DLL,它们不是.NET,我没有编译它们的源代码,必须按原样使用它们.

这个网站在Visual Studio中运行良好,正确定位和访问这些外部DLL.但是,当网站发布在Web服务器(运行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位于网站的bin目录中,以及包装它们的托管DLL以及网站的所有其他DLL.

搜索此问题表明,许多其他人似乎在从ASP.NET网站访问外部非.NET DLL时遇到同样的问题,但我找不到可行的解决方案.

我尝试过以下方法:

  • 运行DEPENDS来检查依赖关系以确定前三个是在路径中的System32目录中,最后一个是在.NET 2框架中.
  • 我将两个DLL及其依赖项放在System32中并重新启动服务器,但网站仍然无法加载这些外部DLL.
  • 将ASPNET,IIS_WPG和IUSR(对于该服务器)的完全权限授予网站bin目录并重新启动,但网站仍然无法加载这些外部DLL.
  • 将外部DLL作为现有项添加到项目中,并将其"复制到输出"属性设置为"始终复制",并且网站仍然无法找到DLL.
  • 还将其"Build Action"属性设置为"Embedded resource",网站仍无法找到DLL.

任何有关此问题的帮助将不胜感激!

asp.net dll iis-6 unmanaged

66
推荐指数
5
解决办法
5万
查看次数

标签 统计

asp.net ×1

dll ×1

iis-6 ×1

unmanaged ×1