2011-08-08 43 views
1

在Process Explorer中,我看到IIS正在加載某些系統DLL的本地版本,而不是常規的受管理版本。 例如,我看到Microsoft.JScript.ni.dll,System.Data.ni.dll,mscorlib.ni.dll和更多。爲什麼IIS使用.NET系統DLL的本機版本?

沒有人有人在這臺服務器上運行ngen。

這是Windows 2008 R2。

這可能是什麼原因造成的?

回答

1

ngen在安裝框架時運行。這些都是常用的程序集,所以.net假定你會使用它們&爲你優化它。

+0

謝謝@Simon,這很有道理。我只是想知道如何在大多數其他服務器上,我看到這些DLL的「常規」非本地版本被加載。任何想法? – Leor

+0

我真的不能說。也許這是在2008 R2?微軟的某個人可能更適合回答這個問題。 –

0

這是Ngen工作的結果 - 將程序集預編譯爲本地代碼(而不是JIT)以提高其性能。

本機圖像生成器的Ngen狀態,所以.ni.dll意味着相同的本機圖像。

+0

其實,@abatishchev,我們從來沒有在服務器上運行過ngen。 – Leor

+0

@Leor:正如西蒙所言,它正在自動運行。 – abatishchev

相關問題