在我的 C# 应用程序中,我使用了一个开源库,该库加载一个非托管 DLL 并从中调用一些函数。
- 首先我调用
var instance = lib.CreateInstance("R.dll")
which 加载 DLL 使用LoadLibrary
fromkernel32.dll
- 然后我调用
instance.init()
which 从加载的 DLL 中调用一些函数
如果我将代码作为控制台应用程序运行,它可以正常工作,但是当我将代码集成到ASP.NET Web 应用程序中时,它会在第二次运行期间挂起。据我了解,Web 服务器 (IIS) 使用一个进程来处理许多请求,因此在var instance = lib.CreateInstance("R.dll")
第二次调用 DLL 时已经加载了该 DLL。
我怎样才能让它在服务器上工作?有没有办法在每次向服务器发出请求后卸载 DLL?