我一直在开发一个应用程序,有时在编码期间,我收到500个内部服务器错误而没有内容,这并不是真正应该显示的。我编写了一个代码来测试控制器中的错误响应,如下:
[HttpGet]
[Route("TryCatch")]
public IHttpActionResult TestCatch()
{
try
{
object obj = null;
int i = (int) obj;
return Ok();
}
catch (Exception e)
{
return InternalServerError(e);
}
}
当我在本地尝试此操作时,我确实会收到有关我想要的错误的信息。至于生产中,我所看到的只是(在邮递员({ "消息":"发生了错误。"}和状态代码。
我环顾四周,找到了我认为解决问题的方法:内部服务器错误 - Azure App Service自定义控制器,但不是。
添加<httpErrors errorMode="Custom" defaultResponseMode="passThrough">
或<customErrors mode="On"/>
或Web.config中的任何内容也无济于事。
任何帮助都将受到赞赏!
请将自定义错误模式更改为关闭。
<customErrors mode="Off"/>
和更改include includeRordetailPolicy属性始终在Webapiconfig.cs文件(Azure Mobile Service(或startup.cs文件(Azure Mobile App(中。
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
之后,我可以从异常属性中获取详细的异常消息。
{"message":"An error has occurred.","exceptionMessage":"Object reference not set to an instance of an object.","exceptionType":"System.NullReferenceException","stackTrace":""}