マネージ コードでラップした C ライブラリを必要とするプロジェクトに取り組んでいます。C ライブラリは 32 ビット用にコンパイルされており、msvcr71.dll
. 問題は、何らかの理由で、この DLL が Windows Server 2008 の SysWOW64 ディレクトリにストックされていないことです。
システム上の SQL Management Studio から DLL をコピーしました。サーバー上のスタンドアロン EXE で動作することを確認できます。それが機能するのを妨げるものは何もありません。
ただし...それを ASP.NET アプリケーションにリンクし、ライブラリの DLL と msvcr71.dll の両方が/bin
ディレクトリにあることを確認すると、サイトのアプリケーション プールが自分の下から外れます。werfault.exe
起動し、大量の CPU と RAM を消費し、イベント ビューアーにこのほとんど役に立たないログを残します。
その後、アプリケーション プールが再起動し、再び失敗するまで待機します。統合モードの .NET 4 で実行されています。このサイトは MVC 3 に基づいています。
Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7a5f8
Faulting module name: ntdll.dll, version: 6.1.7601.17725, time stamp: 0x4ec49b8f
Exception code: 0xc0000374
Fault offset: 0x000ce6c3
Faulting process id: 0x998
Faulting application start time: 0x01cd753eb1fcd760
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\SysWOW64\ntdll.dll
Report Id: 7b54f020-e132-11e1-a34d-404094d3cf82
ここで何が起こっているのですか?DLL を自分の ASP.NET サイトに直接リンクさせたいのですが、プロキシ アプリケーションを作成する寸前です ... できればそのようなハックは避けたいです。ありがとう。
補足:これはすべて、私のローカル マシンで問題なく動作します。IISにリンクするのに本当に問題があるのはサーバー上だけです。
アップデート
これは、特に文字列メソッドを使用して、IIS 内で実行する場合の相互運用の問題のようです...現在調査中です...