0

在仔细阅读堆栈交换&几个月后,我来到社区寻求帮助。我是我的组织的IIS管理员&我一直在看到一个问题,即当对.NET应用程序进行更改时,页面首次提交请求时页面加载需要很长时间。当我说了很长时间时,我有时会说从五分钟到半小时的任何地方。我已经尝试了一些项目来解决这个问题。但是我相信有一个配置设置掩埋在导致问题的地方。一旦页面加载一次,它的加载时间是正常的。无论应用程序如何,它似乎都会发生,尽管有些需要比其他时间更长。这也不一致。有时在更改后需要7分钟才能加载。同样的应用程序可能需要十七分钟才能在下一次进行更改时加载......更改通常很小,新的图像框被移入或添加了新的链接。没什么大不了.NET应用程序在IIS-8中加载速度极慢Windows Server 2012

如果一个应用程序需要二十秒到一分钟才能第一次加载,我们并不担心。但十分钟,十五分钟,有时半小时的加载时间是不可接受的。

不管它是静态内容应用程序,还是发送到数据源,都会发生此问题。任何到数据源的连接都是在应用程序级别配置的。我们仅在少数应用程序上使用它&我验证了连接信息在web.config中对那些涉及数据源的应用程序有效。我们在每个应用程序上使用Windows身份验证。

我们运行的是三层环境,所有环境都运行Windows Server 2012 R2标准版,其中包含16gb ram &多核CPU设置。我们在.NET 4.0.30319上运行IIS 8.5。应用程序池正在利用集成管道支持32位应用程序(应用程序)。这些是VMware主机。服务器每周重新启动一次。 我们的测试或开发服务器上不会发生此问题。只有我们的生产服务器无论改变是在什么时候进行。

2016年12月,我将所有.NET应用程序从运行IIS 6.0的旧版Windows 2003系统移植到新的Windows 2012系统。虽然我们与开发人员合作来更改应用程序中的任何硬编码主机名,但我们最终必须安装CNAME主机记录以将旧主机名重新指向新主机名。这个问题似乎是在这个时候开始的。

我注意到的一个问题是,开发人员正在以调试模式编译所有应用程序。我们将此设置更改为false,但在某些情况下只会略有帮助。

我尝试以下还有:

  • 分离给定的应用&设置应用程序池始终运行。还尝试更改应用程序池标识以作为网络服务运行,或作为服务帐户用户运行。

  • 添加应用程序初始化角色&在IIS中配置始终运行应用程序池&已在应用程序级别启用预加载。 - 当我看到它没有改变时,我支持了这一点。

  • 我把我们的测试/开发服务器之间的所有角色结合起来,这些问题没有发生在生产环境中。

  • 在应用程序池级别禁用空闲超时。有关编译设置,超时测试&生产之间

  • 相比设置等

做出任何区别这些变化都没有。我找不到任何区别测试/开发盒的地方,因为没有问题&生产有问题的服务器。请让我知道你可能需要什么额外的信息&我欣赏提前的帮助!

谢谢, 迈克

回答

0

我们发现了这个问题。我们的AV软件是罪魁祸首。特别是趋势科技Deep Security。

当请求被提出时&程序将在临时区域(C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files)中编译 - 我注意到它似乎正在进行很长的时间才能建立文件。预编译看到了相同的行为。我问我们的LAN管理员为这个特定的文件夹添加一个例外。一旦完成,第一次加载只需5-10秒,这是可以接受的。再次感谢您的输入。

0

你想预编译的网页,使他们没有得到第一次运行编译。 IIRC它只是一个简单的web.config添加。

https://msdn.microsoft.com/en-us/library/bb398860.aspx

虽然说实话,每个页面编译5分钟的时间好像有一个更大的问题怎么回事。我从来没有见过一个新的aspx编译时间超过几秒钟。

+0

“无论它是否为静态内容应用程序,都会发生问题”,等待一小时的等待表明这不是问题。他们的服务器被弄湿了,他们需要将它吹走并重新安装所有新鲜的东西,可能将它扔进废话的垃圾桶并获得更好的服务器。 – Will

+1

@我承认我只是剔除了他的8段。 –

+0

对不起,这篇冗长的文章,只是想尽可能的全面。感谢迄今为止的输入。所有页面在初始加载之后运行良好 - 我不知道服务器是否完全洗净 - 尽管如果我有机会从更高层次重新构建,那么将会采用该选项。 – mmostwill

0

Neil N的回答很有道理,但我肯定会检查并确定所有服务器上的设置是否相同。

如果这不是罪魁祸首,我的下一站肯定会查看事件查看器的“应用程序”部分。它可能会抛出一些有意义的警告,以帮助您更接近问题的根源。

相关问题