![解决 Web 服务器持续加载问题](https://linux22.com/image/647693/%E8%A7%A3%E5%86%B3%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%8C%81%E7%BB%AD%E5%8A%A0%E8%BD%BD%E9%97%AE%E9%A2%98.png)
我是管理 Web 服务器的新手。我正在尝试学习如何解决运行 IIS 7.5 的 Windows Server 2008 R2 中存在 .NET 4.0 MVC 网站的问题。
我管理的一个网站在 GoDaddy 共享主机方案上已经运行了几个月,运行良好。该网站最后一次代码更新大约是在 6 周前。几天前,该网站突然停止工作。实际上,它就像一秒钟又一秒钟。一位网站管理员加载了一个页面,点击了一个链接,但下一个页面却从未加载。从那时起,它就一直处于宕机状态。
我花了大约 5 个小时与 4 位不同的 GoDaddy 技术人员通电话。每次他们都认定是网站编程出了问题。(我们中有 2 人可以访问该网站的 FTP。我们都在上班的路上,FTP 突然停止工作了。)
为了测试,我将网站发布到我们内部的开发服务器,一切正常。然后我将其重新发布到 GoDaddy 共享主机,但仍然无法正常工作。
主要问题是该网站加载了又加载,但却始终没有出现。
我想也许我应该尝试另一个主机,所以我在 Rackspace (Win 2K8 R2) 上启动了一个 Windows VM 服务器,安装了 IIS 7.5,并启动了一个基本的网站。如果我将一个基本的 index.html 文件加载到文件夹中,我可以在本地 Web 服务器上和我的办公室公开看到“Hello world”消息。
但是,一旦我将 ASP.NET 内容加载到文件夹中,我就会再次遇到连续加载问题。
正如我之前所说,在内部开发服务器(也是 Win 2K8 R2 和 IIS 7.5)上,网站运行良好。目前,我已将主域重定向到我的办公室 IP,创建了一些防火墙规则来转发数据包,并成功地从开发服务器托管了网站。但这不是长期的解决方案。
过去几天,我花了几个小时在网上寻找解决方案,并尝试了许多方法。但我还没有遇到过这样的网站托管问题,我没有收到任何明显的错误消息。我正在寻找在 IIS 中解决此问题的方法,或者查找错误消息或日志,或者可以指出问题的东西。但我缺乏管理 Web 服务器的知识,这阻碍了我。
谢谢你!
答案1
我终于在上周解决了这个问题。
我们的 Web 应用程序中有一个配置文件,需要 IIS 的读/写权限。在 GoDaddy 的共享托管帐户上,由于某些未知原因,权限已被删除。当我们将应用程序加载到测试服务器上时,我基本上忘记了我们必须在新服务器上重置这些权限。在我们的内部开发服务器上,权限早在项目开始时就已配置好。
在我们在 Rackspace 上启动的测试服务器上,我为文件所在的父目录添加了“IIS_IUSRS”的“完全控制”。在 GoDaddy 共享托管帐户上,我进入文件管理器并将目录的权限设置为网络读/写。
编码问题是由于该文件正在由 Web 应用程序使用的库访问,因此错误没有得到正确处理。如果连续发生太多错误,IIS 可能会在某些条件下进入持续加载状态。
我将网站精简到最基本,然后开始逐个添加依赖项。然后当错误发生时,它并没有深入到系统中,所以我开始真正获得有用的事件日志。就好像问题太深了,以至于它创建了一个完全不稳定的应用程序,甚至错误都没有被正确报告。
答案2
我会尝试将网站从一个 Web 服务器导出到另一个 Web 服务器,然后检查 .net 版本、应用程序池(包括框架)。如果这不起作用,请使用进程黑客或其他工具来深入了解可能占用如此多资源的内容 - IE 某些方法可能需要数百万个 CPU 周期。如果所有这些都不起作用,请查看专业的 IIS 7 优化或使用 IE Tester、JMeter 测试其性能,看看哪些内容占用了这么多时间,然后尝试对其进行优化。