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의 무언가입니까? Microsoft의 누군가가 그 대답에 더 적합 할 것입니다. –

0

그 결과는 Ngen의 결과입니다. 어셈블리를 JIT 대신 네이티브 코드로 프리 컴파일하면 성능이 향상됩니다.

Native Image Generator의 Ngen 상태이므로 .ni.dll은 동일한 기본 이미지를 의미합니다.

+0

실제로, 우리는 결코 서버에서 ngen을 실행하지 않았습니다. – Leor

+0

@Leor : Simon이 올바르게 말했듯이 자동으로 실행됩니다. – abatishchev

관련 문제