私の C# アプリでは、アンマネージ DLL をロードし、そこからいくつかの関数を呼び出すオープン ソース ライブラリを使用しています。
- 最初に、 from
var instance = lib.CreateInstance("R.dll")
を使用して DLL をロードする呼び出しを行いますLoadLibrary
kernel32.dll
- 次に
instance.init()
、ロードされたDLLから関数を呼び出す
コードをコンソール アプリとして実行すると正常に動作しますが、コードをASP.NET Web アプリに統合すると、2 回目の実行中にハングします。私が理解している限り、Webサーバー(IIS)は1つのプロセスを使用して多くのリクエストを処理するvar instance = lib.CreateInstance("R.dll")
ため、2回目に呼び出されたときにDLLがすでにロードされています。
サーバー上で動作させるにはどうすればよいですか?サーバーへの各要求の後に DLL をアンロードする方法はありますか?