gpt4 book ai didi

asp.net - IIS 记录 200 状态但返回 500 状态

转载 作者:行者123 更新时间:2023-12-05 05:27:17 26 4
gpt4 key购买 nike

我正在尝试诊断一个问题,即 IIS7.5 在 IIS 日志中显示成功 (200) 响应,但在 30 秒后向浏览器返回状态为 500 的“服务暂时不可用”HTML 消息。

更多细节:

  • 我正在调用 WebAPI 端点来运行涉及文件和数据库条目的导入函数。
  • 导入需要 40 到 70 秒才能完成。
  • IIS 7.5 日志显示请求成功完成:

    2013-12-09 10:45:17 10.177.197.244 POST/api/streamdata/ImportStream - 80 [...] Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+( KHTML,+like+Gecko)+Chrome/31.0.1650.63+Safari/537.36 200 0 64 1150 67120

  • 导入代码还会记录导入步骤并显示导入已成功完成。

  • 浏览器在 30 秒后收到返回的 HTML 页面,其中包含“服务暂时不可用” header 和 500 响应代码。

  • 使用.NET4.5

我尝试过的:

  • 使用 Chrome 和 Firefox - 两种方式的结果相同。
  • 为 jQuery AJAX 请求添加超时。如果设置的很短(30 秒),我会收到实际超时报告。如果设置的时间很长(5 分钟),我会像以前一样收到服务不可用消息。
  • 使用 Fiddler 客户端,可以看到服务器正在响应 500 代码(而不是客户端生成的代码)。
  • 检查了各种 IIS 站点和应用程序池设置,但找不到可以解释此行为的设置。
  • 调整了导入代码以省略一些步骤并在 30 秒内完成。在这种情况下,浏览器会收到正常的 200 响应。

总而言之,代码运行正常,但在请求 30 秒后向浏览器返回一条服务暂时不可用的消息,即使服务器仍在愉快地处理请求直至完成。

关于 30 秒内发生的事情以及如何修复它的任何想法都非常感谢。

最佳答案

感谢 Guntram 的引导,我发现问题是负载均衡器中的 30 秒超时,这是 HMTL 错误页面的来源。

一旦 Rackspace 增加了超时时间,一切又恢复正常了。

关于asp.net - IIS 记录 200 状态但返回 500 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20469764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com