【问题标题】:ASP.net compiled dllsASP.net 编译的 dll
【发布时间】:2010-08-18 12:26:39
【问题描述】:

它们存储在哪里?有没有办法确定它们何时被删除?有没有办法让它永远不会被删除,例如提高性能?

另一个问题 - 在繁忙的托管环境中,所有 dll 的大小可以有多大?假设您有 1000 个中型网站?

【问题讨论】:

    标签: .net asp.net performance hosting compilation


    【解决方案1】:

    它们存储在哪里?

    这取决于您是在部署之前还是在部署之后编译它们。如果您在部署之前编译它们,您会将它们直接部署到应用程序的 /bin 文件夹中。这是我通常做的。

    如果您在部署后让 asp.net 编译,那么它们可能会在几个地方结束,这不是我通常关心的事情。仅当站点中的某些内容发生更改时才会重新编译它们,因此它们永远不会被删除,只会被覆盖。

    编译后的 dll 文件的大小通常与用于构建它的源文件的大小相当。

    请注意,这些 .Net dll 主要由 IL 组成,还没有完全编译的本机代码。当您的应用程序启动时(在 asp.net 中:当第一个 http 请求进入时),它们将被即时编译器带到本机代码的其余部分。您可以使用像 ngen 这样的工具来预编译它们,但这通常不是最好的选择。同样,这个最终代码的位置不是我通常关心的问题。

    【讨论】:

    • 我确实认为它们在我的网站托管位置被删除。我的一个流量较低的网站在第一次打开它时总是需要 10 - 15 秒才能加载。之后一切正常。我认为这表明该站点是由 asp.net 重新编译的,或者它可能是别的什么?
    • 框架正在启动,即时编译器正在将您的 dll 文件中的 IL 编译为本机代码。此本机代码通常仅存在于内存中,如果您的应用程序空闲时间足够长,IIS 将关闭它。你的记忆本机代码就在那里。对于不经常使用的应用程序,我为解决这个问题所做的就是更改 IIS 中的一些设置,以使它们保持更长时间,这样它们就不会首先被关闭。但是我不需要经常这样做来记住如何找到这些设置:(
    【解决方案2】:

    您可能正在寻找 .NET Framework 目录中的 Temporary ASP.NET Files 文件夹。请参阅http://msdn.microsoft.com/en-us/library/ms366723.aspx 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2011-03-09
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多