在Process Explorer中,我看到IIS正在加載某些系統DLL的本地版本,而不是常規的受管理版本。 例如,我看到Microsoft.JScript.ni.dll,System.Data.ni.dll,mscorlib.ni.dll和更多。爲什麼IIS使用.NET系統DLL的本機版本?
沒有人有人在這臺服務器上運行ngen。
這是Windows 2008 R2。
這可能是什麼原因造成的?
在Process Explorer中,我看到IIS正在加載某些系統DLL的本地版本,而不是常規的受管理版本。 例如,我看到Microsoft.JScript.ni.dll,System.Data.ni.dll,mscorlib.ni.dll和更多。爲什麼IIS使用.NET系統DLL的本機版本?
沒有人有人在這臺服務器上運行ngen。
這是Windows 2008 R2。
這可能是什麼原因造成的?
ngen在安裝框架時運行。這些都是常用的程序集,所以.net假定你會使用它們&爲你優化它。
這是Ngen工作的結果 - 將程序集預編譯爲本地代碼(而不是JIT)以提高其性能。
本機圖像生成器的Ngen狀態,所以.ni.dll意味着相同的本機圖像。
其實,@abatishchev,我們從來沒有在服務器上運行過ngen。 – Leor
@Leor:正如西蒙所言,它正在自動運行。 – abatishchev
謝謝@Simon,這很有道理。我只是想知道如何在大多數其他服務器上,我看到這些DLL的「常規」非本地版本被加載。任何想法? – Leor
我真的不能說。也許這是在2008 R2?微軟的某個人可能更適合回答這個問題。 –