C# 如果global.asax应用程序_Start()中发生错误,则将Json返回给用户
我需要使用json格式向用户显示我的服务器上发生了什么样的错误。在动作过滤器的帮助下,我已经成功地做到了这一点 但如果异常发生在用户(我指的是web客户端)请求之外(例如在C# 如果global.asax应用程序_Start()中发生错误,则将Json返回给用户,c#,json,asp.net-mvc,C#,Json,Asp.net Mvc,我需要使用json格式向用户显示我的服务器上发生了什么样的错误。在动作过滤器的帮助下,我已经成功地做到了这一点 但如果异常发生在用户(我指的是web客户端)请求之外(例如在应用程序启动()方法中),则发出任何请求的用户将获得一个显示错误信息的html页面 服务器尝试启动每个请求(Application\u start称为每个请求),但请求本身未得到正确处理,并显示错误页面 应用程序启动中的异常被应用程序错误方法捕获。但我不知道如何正确处理它 在这种情况下,Request对象为空,因为当应用程序调
应用程序启动()
方法中),则发出任何请求的用户将获得一个显示错误信息的html页面
服务器尝试启动每个请求(
Application\u start
称为每个请求),但请求本身未得到正确处理,并显示错误页面
应用程序启动
中的异常
被应用程序错误
方法捕获。但我不知道如何正确处理它
在这种情况下,Request
对象为空,因为当应用程序调用方法application\u Start()
时,没有任何请求
当MVC应用程序在
application\u Start
方法中出现异常时,是否有任何方法向用户发送有关错误的信息
谢谢 我在web.config中设置了一个默认重定向
<customErrors mode="On" defaultRedirect="/errors/500.json"></customErrors>
并创建了包含静态内容的500.json文件。teo van kot,感谢您编辑
Application\u Start
并不是每个请求都调用。此外,如果您在Global.asax中遇到异常,这很可能是一个致命错误,用户不应该知道或关心,在这种情况下,将其格式化为JSON应该是您最不关心的问题。是的,当其中没有异常时。在我的例子中,Application\u Start
中发生异常(不管发生什么)。我的应用程序因此无法启动。当用户发出下一个请求时,IIS(我想是这样)会尝试启动我的应用程序,这就是为什么会再次调用application\u Start
方法。“将其格式化为JSON应该是您最不关心的问题。”您可能是对的1。我想您必须解决这个问题,并确保您的应用程序引导没有错误。2.如果出现错误,您可以在Application\u error
中编写一些代码,将用户重定向到另一个(最好是静态)页面,如error.html
。