.net - 当我的大型 ASP.NET 站点更新时,IIS 必须重新编译其中的很多内容。有没有办法显着减少我的编译时间?

标签 .net asp.net iis iis-7 dotnetnuke

DotNetNuke 是一个大型 ASP.NET CMS,大部分是预编译的,其中包含的大多数模块也是如此。

当我们部署我们的 DotNetNuke 站点更改时,我们有两个在第一个页面点击时发生的重新编译。

  • 在 bin 文件夹中替换 DLL 时发生的应用程序级重新编译
  • 每次第一次访问单个模块时,都会在该特定模块上进行一些重新编译。

  • 有没有办法将更多的 CPU 容量分配给在 IIS 7 中编译 asp.net 站点?
  • 我想使用多个内核,或者至少做一些事情来减少重新编译时间。

  • 问答

    您应该使用预编译的 ASP.NET。你为什么不呢?
  • 我们使用的是预编译的 ASP.NET。仅仅因为 ASP.NET 应用程序被编译成 DLL 并不意味着 ASP.NET 运行时不会为了将其提供给访问者而进行额外的重新编译。

  • 你怎么知道它正在重新编译而不是填充缓存之类的?
  • 查看服务器上的任务管理器显示在上述页面点击期间编译器可执行文件的 CPU 使用率为 50%。为什么是 50%? 2核服务器。
  • 最佳答案

    设置 <compilation optimizeCompilations="true" />

    Specifies whether dynamic compilation will recompile an entire site if a top-level file is changed. Top-level files include the Global.asax file and all files in the Bin and App_Code folders. If True, only changed files are recompiled.



    来源:compilation Element (ASP.NET Settings Schema)

    有关利弊的更多信息,请访问 Understanding ASP.NET Dynamic Compilation ,在优化动态编译下。错误的主要原因是现有方法签名的删除或更改,导致已编译的页面在重新编译之前抛出 MissingMethodException。

    您还可以考虑减少批量编译的批量大小,或完全禁用它。我相信这会减少单页的编译时间,但会生成更多的程序集并消耗更多的内存。

    关于.net - 当我的大型 ASP.NET 站点更新时,IIS 必须重新编译其中的很多内容。有没有办法显着减少我的编译时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612976/

    相关文章:

    c# - 在线查看 .rdl 文件

    c# - 在 gridview 上启用和禁用链接按钮

    apache - IIS 和 Apache2 之间的 502 代理错误

    asp.net-mvc - 使用signalr时,IIS会有连接限制吗

    .net - 在运行时更改 log4net 转换模式或布局

    .NET:继承修改基类(C++转换)

    asp.net - Windows Azure 缓存预览

    php - 正在上传的文件首字母被截断

    c# - WCF 服务在处理特殊字符时失败

    javascript - chrome 检查器中有没有办法生成 dom 选择器