IIS7 托管 WCF 服务:避免将 DLL 放在 System32 文件夹中

本文关键字:放在 DLL System32 文件夹 WCF 托管 服务 IIS7 | 更新日期: 2023-09-27 18:26:19

我有一个引用dll的wcf服务。它的唯一方法是将 dll 放在 %windir%/system32 文件夹中。

我尝试
过的事情

  • 尝试在 IIS Express、开发服务器和 IIS 之间切换(但这无关紧要(
  • 将 DLL 放在 bin 文件夹和/或其他应用程序文件夹中
  • 尝试使用"Regsvr32"实用程序,但DLL不是COM DLL,因此它不起作用。(无 DDL 入口点(
  • 它不是 .NET dll,所以我认为不能操纵 GAC 来处理这个
  • 使用系统路径变量没有任何成功

我真正想要
的是什么一种更简单的访问 dll 的方法,因此我不必将 dll 放在 system32 中,而是将其包含在应用程序文件夹中并从那里访问它。

我错过了什么?


编辑: 我确实发现这篇文章有趣且相似,但同样,它也使用 system32 方法,这不是要走的路。

IIS7 托管 WCF 服务:避免将 DLL 放在 System32 文件夹中

如果这是一个 win32 本机库,则可以使用 pinvoked LoadLibrary将库的完整路径作为参数传递(在处理管道的早期位置(从已知位置"预加载"它。

当调用用 DllImport 修饰的库中的任何方法时,运行时将尝试加载库(并且会因为找不到 dll 而下降(,但由于您预加载了它,加载将成功(加载器检查库文件名,不注意从哪个目录加载库(。