生成された混合モード プロセスに起因するマネージド アセンブリ ロードの問題が発生しています。詳細については、以下を参照してください。BinPath と ExecutablePath が同じではない 2 つの有効なパスであるとします。
BinPath で開始された Web アプリがあり、次の ProcessStartInfo を使用してプロセスを作成します。
new ProcessStartInfo()
{
FileName = ExecutablePath + "PerformanceRunner.exe",
WorkingDirectory = ExecutablePath ,
UseShellExecute = true
};
次に、PerformanceRunner.exe は、ExecutablePath に存在するいくつかのアンマネージ DLL を正常にロードします (これは、VS の [モジュール] ウィンドウで確認できます)。次に、同じく ExecutablePath にあるマネージ アセンブリを読み込もうとしますが、これは失敗します。これのフュージョン ログは次のとおりです。BinPath は "G:\TOPSS\TOPSS New\Common\Service\Bin" であり、マネージド アセンブリは TPSSCDQ.dll であることに注意してください。TPSSCDQ は ExecutablePath にあります。
* アセンブリ バインダー ログ エントリ (11/29/2012 @ 4:16:11 PM) *
操作に失敗しました。バインド結果: hr = 0x80070002。システムは、指定されたファイルを見つけることができません。
アセンブリ マネージャーの読み込み元: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 実行可能ファイルの下で実行 G:\TOPSS\TOPSS New\Common\Service\Bin\PerformanceRunner.exe
=== プレバインド状態情報 ===
LOG : ユーザー = CORP\lbhra
LOG : DisplayName = TpssCDQ、Version=1.0.4612.26218、Culture=neutral、PublicKeyToken=null (完全指定)
LOG : Appbase = file:///G:/TOPSS/TOPSS New/Common/Service/Bin/
LOG : 初期 PrivatePath = NULL
LOG : 動的ベース = NULL
LOG : キャッシュ ベース = NULL
LOG : AppName = PerformanceRunner.exe
呼び出しアセンブリ : (不明)。
===
LOG : このバインドは、デフォルトのロード コンテキストで開始されます。
LOG : アプリケーション構成ファイルが見つかりません。
LOG : ホスト構成ファイルの使用:
LOG : C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config のマシン構成ファイルを使用します。
LOG : 現時点ではポリシーが参照に適用されていません (プライベート、カスタム、部分、または場所に基づくアセンブリ バインド)。
LOG : 新しい URL ファイル:///G:/TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ.DLL のダウンロードを試みています。
LOG : 新しい URL ファイルのダウンロードを試みています:///G:/TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ/TpssCDQ.DLL。
LOG : 新しい URL ファイル:///G:/TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ.EXE のダウンロードを試みています。
LOG : 新しい URL ファイルのダウンロードを試みています:///G:/TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ/TpssCDQ.EXE.
LOG : すべてのプローブ URL が試行され、失敗しました。
PrivatePath、Appbase、または Dynamicbase が何であるかを完全には理解していませんが、これらのパスの少なくとも 1 つが作業ディレクトリ (ExecutablePath) であるべきではありませんか? GetCurrentDirectory を使用して、作業ディレクトリが正しく設定されていることを確認しました。私はかなり混乱しているので、これを手に入れていただければ幸いです。