1

IIS 7 で動作する最新の MVC 4 を使用して構築された Web サイトがあります。独自のアプリケーション プールを作成し、ランタイム バージョンを 4.0 に設定しました。過去数か月間、すべてが順調に進んでいました。昨日、そのマシンに必要な他のコンポーネントを含め、最新の内部バージョンにアップグレードしました。コンポーネントの 1 つは、Newtonsoft.Json.dll v4.5.10をそのコンポーネントのいくつかのGACにインストールしました。

これにより、私たちのウェブサイトが壊れました。簡単な調査を行ったところ、IIS (w3wp.exe) がWeb サイトのバージョン (4.5.11 - .NET 4.0 の場合) ではなく、GACから Newtownsoft.Json.dll をロードしていることがわかりました。アプリケーション プールが .NET Framework 4.0 に設定されているため、これは不可解です。

IIS がローカル バージョンではなく GAC からこの DLL をロードする原因は何ですか?

強制的にローカル コピーを使用する方法はありますか?

すぐに同じバージョンになる可能性が高いですが、そのうちの 1 つは v2.0 ではなく .NET v4.0 をターゲットにしています。IIS がこれらすべてを処理する方法についての指針はありますか?

ここここでいくつかのスレッドを見ましたが、運がありません。

4

2 に答える 2

1

.net ライブラリには明確な優先順位があることを覚えています。

理解に役立つかもしれないこの Stackoverflow の投稿を掘り下げました

特定のケースでは、ライブラリの特定のバージョンを使用するようにサイトを再コンパイルすると役立つでしょうか? (おそらく、あなたは現時点でこれをしていませんか?)

または、別の方法として、自分のバージョンも GAC に入れて実験することはできますか?

これらがあなたにいくつかのアイデアを与えることを願っています。

于 2013-05-10T21:04:23.977 に答える