ASP.NET服务的app_offline.htm文件返回http状态503.这是大多数情况下的正确行为.然而,在请求特定URL(例如
https://www.mywebsite.com/monitor)的情况下,我想将返回的http状态更改为200,同时在所有其他情况下仍返回http状态503.这可能吗?
我想这样做的原因是每当我们在我们的网站上进行定期维护时,我们使用app_offline.htm文件,但是我们不希望我们的正常运行时间监控服务(Pingdom.com)在预定的维护期间报告停机时间.
我认为这必须在IIS级别,因为app_offline.htm在请求处理周期中得到很早的服务.
解决方法
请注意,App_Offline只是让ASP.NET部分下降,它与IIS站点无关.所有非ASP.NET请求(如.htm)将通过正常的IIS管道.
话虽如此,HTTP 503是不可用的服务错误. App_Offline.htm将站点部分脱机,所有ASP.NET请求在站点脱机时获得503响应是正常的和正确的.
绕过这个HttpModule或ASP.NET管道中的任何代码都不是一个有效的解决方案.
由于您在维护期间已经在IIS根目录中创建/复制了App_Offline.htm,所以建议将maintenance.htm添加为/ monitor文件夹或IIS站点的默认文档,然后创建/复制一个maintenance.htm文件在维护期间:然后默认页面将到达任何ASP.NET网站脱机或不.
如果您的探测器正在调用http:// servername / monitor / uri,而不指定任何页面,它将工作.