2011-08-08 4 views
1

Process Explorerで、IISが通常の管理対象DLLの代わりに一部のシステムDLLのネイティブバージョンをロードしていることがわかりました。 たとえば、Microsoft.JScript.ni.dll、System.Data.ni.dll、mscorlib.ni.dllなどを参照してください。IISが.NET System DLLのネイティブバージョンを使用しているのはなぜですか?

誰もこのサーバでngenを実行しませんでした。

It's Windows 2008 R2。

この原因は何ですか?

答えて

1

フレームワークのインストール時にngenが実行されます。これらは一般的に使用されるアセンブリなので、.netはそれを使用すると仮定します。&はそれを最適化します。

+0

ありがとう@サイモン、それは理にかなっています。私はちょうどそれがどのように他のほとんどのサーバー上で、私はこれらのDLLの "通常の"非ネイティブのバージョンが読み込まれていることがわかります。何か案が? – Leor

+0

私は本当に言うことができません。おそらくそれは2008 R2の何かですか?マイクロソフトからの誰かがおそらくそれに答えるのに適しています。 –

0

Ngenの作業の結果 - パフォーマンスを向上させるためにアセンブリをJITの代わりにネイティブコードにプリコンパイルします。

ネイティブイメージジェネレータのNgen状態です。したがって、.ni.dllは同じネイティブイメージを意味します。

+0

実際には、私はサーバー上でngenを実行したことはありません。 – Leor

+0

@Leor:Simonが正しく述べたように、自動的に実行されています。 – abatishchev

関連する問題