【问题标题】:Any known issues regarding empty *.aspx pages with IIS7?关于 IIS7 的空 *.aspx 页面的任何已知问题?
【发布时间】:2009-02-05 17:44:23
【问题描述】:

我有一个 IIS7 Web 应用程序,它主要服务于 Web 服务请求。作为我们解决方案的一部分,我们有两个 Web 服务器和一个负载均衡器,负载均衡器会定期从其每个负载均衡框请求一个页面。负载均衡器加载的页面名为“Health.aspx”,它确实没有后面有代码,Health.aspx文件的全部内容是:

OK

但是,当我们全天请求此页面时,我们发现负载平衡器偶尔会出现 400 错误,这会导致负载平衡器在一段时间内将机器从其旋转中弹出。

虽然这里有许多可能导致问题的因素,但我想从 web 框本身开始,确定一个几乎空且没有代码的 *.aspx 页面是否会导致周期性问题。

【问题讨论】:

    标签: asp.net iis-7


    【解决方案1】:

    您应该创建 Health.html 并使用它来代替。这也将让您了解是 ASP.NET 给您带来 400 问题还是 IIS。

    【讨论】:

    • 我已经提出了这个建议,希望我们能用这个方法来解决问题。
    【解决方案2】:

    “400 错误”涵盖了广泛的潜在问题,从简单的未找到 404 到错误请求 401,再到禁止 403。

    其中一些可能是由不良网络电缆、网卡、糟糕的负载平衡器、过载的服务器等造成的。

    顺便说一句,不,没有代码的网页不会抛出这种情况。另外,我可能会在 health.aspx 中做更多的事情来验证服务器是否实际运行。就像运行计算或发出简单的数据库请求一样。毕竟,IIS 可能只是在缓存文件。

    【讨论】:

      【解决方案3】:

      事实证明,问题只是请求的数量庞大,以及处理请求的响应时间不合时宜(或者说真的是 request 时间 - 我们的客户端连接非常慢)。 Health.aspx 的请求被缓慢的客户端连接所困扰,默认的MaxConcurrentRequestsPerCPU 12 人为地限制了我们每秒的实际请求数。将此数字增加到 100(基于针对我们特定应用程序的负载仔细测试我们的硬件)解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-13
        • 2012-10-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多