我们的网站在iis 7.5的两台机器上运行 一个工作正常。
另一个如何在应用程序池回收后处理第一个请求需要很长时间。由于它将被用作我们的生产服务器,因此它可能需要超过60秒,这是不易察觉的。
我检查了两台服务器上的应用程序池设置,它们是相同的,两台服务器上的webapp版本是相同的。 我运行任务管理器和资源监视器,在我发出请求时添加查看与机器的连接,但没有其他任何事情发生,iis甚至没有在日志中显示请求,直到完成。 我真的不知道它在做什么。
我们可以尝试使用哪些设置来修复此问题或查找问题。 这非常令人费解。
编辑: 所以我现在有了更多的信息,finall得到失败的请求日志工作(必须给用户IIS_IUSRS权限),但我有一些日志来看看发生了什么
时间丢失在日志文件中的两秒钟之内。
1. MODULE_PRECONDITION_NOT_MATCH Name="ScriptModule-4.0", Precondition="managedHandler,runtimeVersionv4.0" 12:09:46.422
2. VIRTUAL_MODULE_UNRESOLVED Name="FormsAuthentication", Type="System.Web.Security.FormsAuthenticationModule" 12:12:04.390
正如你所看到的那样,在这两个事件之间需要花费2分钟以上的时间,任何人都会先讨论这个事件吗?
答案 0 :(得分:20)
这有点难以说明你的其他服务器上发生了什么,但是这里有一个你可能想重新考虑的简单清单:
始终预编译您的网站,而不是复制它!在部署之前,您可能会在编译网站时获得显着的性能提升: ASP.NET Precompilation Overview
当web.config中的debug标志为true时,不要运行启用了debug="true"
的生产应用程序,运行时在应用程序中使用了更多的内存,并且因为启用了一些额外的调试路径,代码可以执行得慢得多
检查您的Web.config文件以确保在<trace>
部分
IIS 7.5附带Auto-Start Feature。 WAS(Windows进程激活服务)启动配置为自动启动的所有应用程序池,确保在IIS 7.5 AlwaysRunning
,check out here中将应用程序池配置为applicationHost.config
以获取更多详细信息
查看ASPNET.CONFIG
文件,查看两台服务器上的配置是否仍然相同。每个asp.net服务器都可以通过位于框架文件夹根目录的aspnet.config
文件进行良好配置
确保aspnet.config文件中的代码访问安全性(CAS)的发布者证据设置为false,这可能会在您重新启动ASP.NET应用程序池时增加初始页面加载。你可以阅读more about it here。
以下是禁用检查应用程序的CAS发布者策略的方法:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>