微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 ASP.NET 网站中找不到来自不同安装文件夹的 DLL 依赖项

如何解决在 ASP.NET 网站中找不到来自不同安装文件夹的 DLL 依赖项

我创建了一个带有 WCF 服务的 .NET Framework 4.7.2 网站。要通过此服务公开数据,我必须从 C:\InstallLocation 引用具有 copy Local = False 的第三方 DLL。该网站正在运行时加载此 DLL,但在访问 DLL 中的功能时出现错误,该功能需要它在同一 InstallLocation 文件夹中加载辅助 DLL。我与 Process Monitor 确认 W3WP.exe 正在 C:\InstallLocation 中找到主 DLL,但 W3WP.exe 根本无法在 C:\InstallLocation 中查找辅助 DLL。应用程序错误是预期的,

无法加载文件或程序集“[assembly-info-ommitted]”或其依赖项之一。系统找不到指定的文件

我还在控制台应用程序中测试了完全相同类型的引用,该应用程序正常工作。进程监视器显示了在 C:\InstallLocation 中查找辅助 DLL 的可执行文件

有没有办法配置 .NET Web 应用程序以允许进程在与引用的主 DLL 相同的目录中查找?我尝试了以下但没有(完全)成功:

  • 将 C:\InstallLocation 添加到我的系统路径(并重新启动)。好像没什么影响。我在应用程序启动时验证添加的路径确实出现在 Environment.GetEnvironmentvariable("PATH") 中。
  • 将 C:\InstallLocation 移动到我的网络根目录并尝试
  • 将 C:\InstallLocation 移动到 bin 文件夹并注释掉 .与上述结果相同。
  • 授予应用程序池用户对 C:\InstallLocation 的完全权限。用户:IIS APPPOOL\{网站名称}、IUSR、IIS_IUSRS

编辑

我已经实现了一个初始化程序,如下所示,https://stackoverflow.com/a/16867088/2544926。我已更改代码以检查 C:\InstallLocation 中是否存在 DLL 以从该文件夹加载 DLL。从 Process Monitor 的输出来看,这似乎让我更接近了。但是,我在此过程的后期看到了一个错误。这是我现在看到的错误(多级异常)。

”的类型初始值设定项引发异常。

在导致 C++ 模块无法加载的主要异常之后发生嵌套异常。

”的类型初始值设定项引发异常。

在 vtable 初始化期间无法加载 C++ 模块。

无法加载文件或程序集“XYZ,版本=N.N.N.N.N,Culture=neutral,PublicKeyToken=NNNNNNNNN”或其依赖项之一。系统找不到指定的文件

有趣的是,在我的自定义程序集初始化程序代码中,我看到从 C:\InstallLocation 加载了 XYZ.DLL。此 C++ 模块是否可能尝试以不同方式加载它或以 ASP.NET 不支持的方式加载它?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?