错误地停止ASP.NET MVC 2 REST svc优雅地出错
问题描述:
我已经创建了一个REST Web服务,它在Application_Start上订阅另一个向订阅者发布消息的服务。现在,如果其中一个订阅以不可恢复的方式失败,我将记录错误并抛出消息以允许框架处理异常。我真的更愿意更优雅地处理这个消息。出于某种原因,我对我需要做的事情感到不知所措。有没有办法在我调用我的订阅管理代码的Application_Start事件中捕获异常,然后停止应用程序。我想我知道答案就是不记得如何去做。错误地停止ASP.NET MVC 2 REST svc优雅地出错
TIA!
答
我会在可能失败的部分放一个try/catch,并且在catch中,您可以卸载应用程序域,如here所示,这会导致下一次重新运行Application_Start,或者您可以只需在应用程序的IIS目录中写入名为“app_offline.htm”的文件(或复制到位)即可。当该文件存在时,IIS将自动显示该页面而不是您的应用,因此您可以制作一些静态“对不起,我们现在不在线,请稍后再试。”页面显示用户。
我想你也可以用create a custom error page来显示用户,它比默认的ServerError页面更好看。
感谢您的回复。如果可能,我真的很想关闭应用程序。但是,卸载应用程序似乎可能是我最好的选择。 – RockyMountainHigh 2011-05-06 17:52:18