【问题标题】:Why is IIS using native versions of .NET System DLLs?为什么 IIS 使用本机版本的 .NET 系统 DLL?
【发布时间】:2011-08-08 19:32:50
【问题描述】:

在 Process Explorer 中,我看到 IIS 正在加载一些系统 DLL 的本机版本,而不是常规托管的。 例如,我看到了 Microsoft.JScript.ni.dll、System.Data.ni.dll、mscorlib.ni.dll 等等。

从来没有人在这台服务器上运行过 ngen。

这是 Windows 2008 R2。

这可能是什么原因造成的?

【问题讨论】:

    标签: .net iis dll clr native


    【解决方案1】:

    ngen 在安装框架时运行。这些是常用的程序集,因此 .net 假定您将使用它们并为您优化它。

    【讨论】:

    • 谢谢@Simon,这是有道理的。我只是想知道在大多数其他服务器上是如何加载这些 DLL 的“常规”非本地版本的。有什么想法吗?
    • 我真的不能说。也许它是 2008 R2 中的东西?微软的人可能更适合回答这个问题。
    【解决方案2】:

    这是 Ngen 工作的结果 - 将程序集预编译为本机代码(而不是 JIT)以提高其性能。

    Ngen 状态为 Native Image Generator,所以 .ni.dll 表示相同的 - 原生图像。

    【讨论】:

    • 实际上,@abatishchev,我们从未在服务器上运行过 ngen。
    • @Leor:正如西蒙所说的那样,它是自动运行的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多