.net MVC アプリで win32 DLL を使用しようとしています。ただし、次のエラーが発生し続けますUnable to load DLL 'experiment_dll.dll': The specified module could not be found
プロセス モニターを使用して、DLL をロードしようとするコードが実行されたときのファイル システム アクティビティをキャプチャしました。DLL が表示され、ほとんどのファイル システム操作が成功したことを示しています。
ファイル システム アクティビティの 2 つのフルサイズのスクリーン キャプチャ -
ご覧のとおり、操作の 1 つの結果の 1 つが ですFILE LOCKED WITH ONLY READERS
。これが、DLL のロードに失敗し、DLL が見つからないというエラー メッセージが表示される理由でしょうか?
UPDATE:
この結果は実際には成功であり、問題にはならないというフォーラムのスレッドを見つけました - http://forum.sysinternals.com/topic21378.html
これがアクセス許可の問題である場合、どのように修正できますか? DLL ファイルと、Bin および Root フォルダーに対するアプリケーション プールの完全な制御を既に与えています。
テスト MVC アプリとテスト DLL (bool を受け取り、同じ bool を返す単一の関数をエクスポートするだけです) を作成しようとしました。テスト MVC x86 と DLL win32 (両方ともリリース ビルド) を作成し、Enable 32-Bit Applications
アプリ プールを設定しようとしました。また、テスト用の MVC x64 と DLL x64 (両方ともリリース ビルド) を作成し、Enable 32-Bit Applications
アプリケーション プールの設定を false に設定しようとしましたAny Cpu
. 構成も試しました. すべてが同じエラーを生成し、すべてが同じファイル システム アクティビティを生成します画面キャプチャに示すように。
Azure 仮想マシンで実行されている IIS 8.5、Windows Server 2012 R2 に発行するときに、この問題が発生しています。
フリーに公開するmywebsite.azurewebsites.net
とき、または開発マシンで実行するときに、DLL は問題なく読み込まれます。