我试图诊断IIS 7.0在IIS日志中显示成功(200)响应但将“服务暂时不可用”HTML消息返回给浏览器500秒后,30秒后。IIS日志200状态,但返回500状态
更多的细节:
- 我称为的WebAPI端点运行涉及的文件和数据库条目的导入功能。
- 导入需要40-70秒才能完成。
的IIS 7.5日志显示请求成功完成:
2013年12月9日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
导入代码还会记录导入步骤并显示导入已成功完成。
浏览器接收到一个HTML页面,并在30秒后显示“Service Temporarily Unavailable”标题和一个500响应代码。
- 使用.NET4.5
我已经试过:
- 使用Chrome和Firefox - 同样的结果无论哪种方式。
- 向jQuery AJAX请求添加超时。如果设置的很短(30秒),则会收到实际的超时报告。如果这设置很长(5分钟),我会像以前一样收到服务不可用消息。
- 使用Fiddler客户端,并可以看到服务器以500代码响应(而不是客户端生成的东西)。
- 检出了各种IIS站点和应用程序池设置,但找不到解释此行为的设置。
- 调整导入代码错过了一些步骤,并用不到30秒完成。在这种情况下,浏览器收到了正常的200响应。
因此,总之,代码运行正常,但服务暂时不可用的消息在请求30秒后返回给浏览器,即使服务器仍然愉快地处理完成请求。
关于30秒发生的事情以及如何解决问题的任何想法,我都非常感激。
您的代理服务器与客户端之间的暂停时间为30秒吗? –
@Guntram听起来似乎是合理的,谢谢,但我不知道我应该在哪里找出答案。 IIS在由Rackspace托管的Windows 2008 R2服务器上运行,并且设置它的人员已经离开......我应该查看哪些建议? – Appetere
查看日志中的IP地址 - 10.177.197.244。这是一个私人IP地址,所以我认为从“外部”看到的IP是代理的IP,它将请求重新路由到内部的真实服务器。只有rackspace支持可以帮助你。 –