アセンブリ・バインディング・ログを有効にするにはどうすればいいですか?

ファイルまたはアセンブリ 'Bla'またはその依存関係の1つをロードできませんでした。不正な形式のプログラムを読み込もうとしました」と表示されます。

詳細情報の一部を見ると

"WRN: アセンブリバインディングのロギングがオフになっています。 アセンブリ結合の失敗のログを有効にするには、レジストリ値HKLM\Software\MicrosoftFusion!EnableLogを1に設定してください。 注:アセンブリバインディング失敗のロギングには、パフォーマンス上の問題があります。 この機能をオフにするには、レジストリ値[HKLM\Software\MicrosoftFusion!EnableLog]."を削除してください。

そこで、なぜ上記のようなエラーが出るのかを知る手がかりになるかもしれないと思い、レジストリのその場所に移動してみましたが、そのようなキーは見当たりませんでした。あるのは

\Fusion 
    (Default)   value not set
    \GACChangeNotification
    \NativeImagesIndex
    \PublisherPolicy

何が足りないのでしょうか?

質問へのコメント (1)
ソリューション

失敗したバインディングの調査を開始するには、"fuslogvw.exe"ユーティリティを使用するのが良いでしょう。これにより、バインディングの失敗に関連する必要な情報が得られ、バインディングログを有効にするためにレジストリ値をいじる必要がなくなるかもしれません。

Fuslogvw MSDNページ.

このユーティリティは、Microsoft SDKのフォルダに入っているはずで、OSによっては以下のようになっています。 "C:Program Files (x86)\Microsoft SDKs\Windows\v{SDK version}A\Bin\FUSLOGVW.exe".

  1. このユーティリティ(GUI付き)を起動し、設定を "Log bind failures to disk" にします。

  2. "Delete all"をクリックすると、過去のバインド失敗のリストが消去されます。

  3. あなたのアプリケーションでバインド失敗を再現する

  4. ユーティリティーでRefreshをクリックします。そうすると、リストにバインドエラーが記録されていることが確認できます。

  5. 一覧表でバインド失敗を選択し、"View Log&quotをクリックすると、バインド失敗に関する情報を見ることができます。

まず、アプリケーションがアセンブリを探す際のパスを確認します。また、問題のアセンブリのバージョン番号が期待するものであることを確認する必要があります。

解説 (8)

Fusionキーの下に新しいDWORD(32)を作成するだけです。 DWORDにEnableLogの名前を付け、値1に設定します。 次に、IISを再起動し、エラーを与えるページを更新すると、アセンブリバインドログがエラーメッセージに表示されます。

解説 (2)

1。 新しいアプリケーションプールを作成します。

2。 このアプリケーションプールの詳細設定に移動します。

3。 Enable 32ビットアプリケーションをTrueに設定します。

4。 この新しいプールを使用するようにWebアプリケーションをポイントします。

スクリーンショット(IIS-ApplicationPool)。!

解説 (1)

上記のpierce.jasonの回答によると、私は次のことに運がありました。

Fusionキーの下に新しいDWORD(32)を作成するだけです。 DWORDに LogFailures の名前を付け、値1に設定します。 次に、IISを再起動し、エラーを与えるページを更新すると、アセンブリバインドログがエラーメッセージに表示されます。

解説 (0)

私にとって「Bla」ファイルはSystem.Net.http dllでしたが、BINフォルダーから欠落していました。 追加しただけで問題なく動作しました。 レジストリキーやそのようなものは変更しませんでした。

解説 (0)

アプリケーションの異なるバージョンを時々実行する場合、実行しているバージョンに必要がなければ、アプリケーションのbinディレクトリから 'Bla'を必ず削除してください。

解説 (0)

新しいアプリケーションプールを作成する代わりに、あなたはあなたのところに行くことができます。 既存のアプリケーションプール-> 右クリック[事前設定]-> 32ビットアプリケーションを有効にする ---- TRUE に設定します。

解説 (0)

私も同じ問題に直面したとき、そのプロジェクトの既存の key.snk を削除して、新しいキーを追加することで解決しました。

解説 (0)

このエラーは、クライアントからサーバーdllを呼び出すときにWindowsアプリケーションで発生します。 システムの再起動後、正常に動作します。

解説 (0)