asp.net – IIS 7.5 Web应用程序首先请求应用程序池回收非常慢

我们的网站在iis 7.5的两台机器上运行
一个工作正常

另一个在应用程序池回收之后如何处理第一个请求需要很长时间.它可能需要超过60秒,这是不可接受的,因为它将被用作我们的生产服务器.

我检查了两个服务器上的应用程序池设置,它们是相同的,两台服务器上的webapp版本是一样的.
我已经运行任务管理器和资源监视器,添加查看到机器的连接,当我提出请求,但没有其他的事情,我甚至不显示在日志中的请求,直到其完成.
我真的不知道在同一时间做什么.

是否有任何痕迹的设置,我们可以尝试玩来解决这个问题或找到问题.
这很困惑

编辑:
所以我现在有更多的信息,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分钟以上的时间吗?

这有点难以告诉您在其他服务器上发生了什么,但是这里有一个简单的清单,您可能需要重新考虑:

>总是预先编译你的网站,而不是复制它!在部署之前,您可能会获得显着的性能提升编译您的网站:
ASP.NET Precompilation Overview
>当您的web.config中的debug标志为true时,不要运行带有debug =“true”的生产应用程序,运行时在应用程序中使用更多的内存,并且由于启用了一些其他调试路径,代码可以执行很多比较慢
>检查您的Web.config文件,以确保在< trace>中禁用跟踪.部分
> IIS 7.5随附Auto-Start Feature.WAS(Windows Process Activation Service)启动配置为自动启动的所有应用程序池,确保将应用程序池配置为在IIS 7.5 applicationHost.config,check out here中的AlwaysRunning以获取更多详细信息
>查看ASPNET.CONFIG文件,查看两台服务器上的配置是否仍然相同.每个asp.net服务器都可以通过位于framework文件夹根目录下的aspnet.config文件进行配置
>确保您的aspnet.config文件中的代码访问安全性(CAS)的发布者证据设置为false,这可能会在重新启动ASP.NET应用程序池时增加初始页面加载.你可以阅读more about it here.

以下是禁用检查应用程序的CAS发布商策略的方法:

<configuration>
    <runtime>
        <generatePublisherEvidence enabled="false"/>
    </runtime>
</configuration>

>也可能要尝试Application Initialization Module for IIS 7.5,此模块也可用于IIS 8.0可以通过预加载工作进程减少首次请求的响应时间

翻译自:https://stackoverflow.com/questions/13917205/iis-7-5-web-application-first-request-after-app-pool-recycle-very-slow

转载注明原文:asp.net – IIS 7.5 Web应用程序首先请求应用程序池回收非常慢