我有在内置服务器上预编译的 MVC 5 ASP.NET 应用程序。部署包中没有可编译的元素。当部署在 IIS 7/7.5 上时,此 Web 应用程序将在 5 秒内在内存较小的慢速服务器上启动。首次运行时没有内存峰值,网页快速响应。
但是,在第一次启动时,在内存更大且 IIS 8.5 的较新服务器上部署的相同应用程序的行为就像没有编译一样。我在第一次访问所有可用内存时看到了高内存峰值,并且在极少数情况下我遇到了 OutOfMemoryException。
看起来 IIS 8.5 完全忽略了应用程序已经编译并再次执行的事实。有谁知道是否有可能解决这个问题,或者我必须停止使用新服务器并回到旧服务器。
更新 1 经过几次测试,我认为这与 x64 位架构有关。如果我在 IIS 8.5 上设置 AppPool。以 32 位运行,一切都像在 IIS 7 计算机上一样快。我理解为什么 IIS 进程在 32 位上占用两倍的内存。但是不明白为什么编译要长7(七)倍,编译内存要大10倍。