【问题标题】:Http Request Timeouts on Azure Web AppsAzure Web 应用程序上的 Http 请求超时
【发布时间】:2015-07-14 16:01:12
【问题描述】:

我们有一组在 Azure 云托管平台上运行的 MVC 5 网站。我们有几个不同版本的运行这些网站的环境(开发、登台、生产),我们遇到了一个非常难以解决的问题。似乎间歇性地,当向生产环境发出请求时,请求将被拒绝,或者文件将被缓慢地提供到服务器超时并中止请求的地步。这似乎只发生在生产环境中,似乎不会发生在开发或暂存环境中。

鉴于我们的网站最近才开始接收流量,生产环境实际上在这种情况下使用较少,因此不是机器资源不足的问题。此外,我们还可以通过 web ui 监控机器的资源,我们在这里没有发现任何问题。

在配置这些系统时,我们无法控制它们的设置方式。为此,它们之间不太可能存在配置差异,因为它们是(可能)从图像设置的,并通过 Web UI 进行配置。据我们所知,这些系统上的设置在它们之间是相同的。为了确保不是机器配置的问题,我们通过重新创建来镜像生产环境,但我们仍然遇到同样的问题。

我们环境中的网站通过 SSL 证书得到保护。为了消除潜在的罪魁祸首,我们在生产站点上关闭了 SSL 并对其进行了测试。这似乎没有解决问题,我们仍然收到间歇性失败的请求。

我们认为这可能与路由有关,而 MVC 处理文件,因此我们尝试下载静态文件(图像、javascript 文件)以及动态文件(视图、捆绑的 javascript),但仍然得到这些失败的请求。在我们的捆绑配置中,我们没有覆盖默认的 RouteExistingFiles 值,因此 MVC 不应该处理静态文件的路由(至少据我了解,如果我错了,请纠正我)

我们的测试是针对帐户上的主域名运行的,看来问题不是由任何与 DNS 相关的东西引起的。

这似乎与我们的数据库连接没有任何关系,因为我们在提供静态文件时没有访问我们的数据库,也没有在我们加载登录页面时(我们主要针对它进行测试)

对于可能导致此问题的原因,我们确实缺乏想法,我们真的希望有人可能在 Azure 云平台上遇到过类似的问题?或者,如果有人有任何建议,将不胜感激。

【问题讨论】:

    标签: asp.net-mvc azure iis


    【解决方案1】:

    尝试启用“始终开启”功能,这可以通过网络应用设置来完成。

    Azure App Service 的工作原理是将网站内容存储在文件服务器上,然后在网站处于活动状态时由 Web Worker 加载该网站。如果站点空闲,它将被卸载。当新请求进来时,必须重新加载站点,这可能会导致您遇到的速度变慢。此外,内容可能会再次被更新,这将进一步导致放缓。

    配置网络应用的文档在这里:https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

    【讨论】:

    • 我们已经尝试过打开和关闭始终打开的站点,结果相同。此外,我们为这些站点设置了 Azure Application Insights,并开启了可用性检查,因此请求每隔几分钟就会到达站点的主页。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多