我有一个像这样的全局 html 错误处理程序设置:
public override void Configure(Container container)
{
//...
this.GlobalHtmlErrorHttpHandler = new RazorHandler("/oops");
this.ServiceExceptionHandlers.Add((httpReq, request, exception) =>
{
//Log the exception here...
//return custom response
return DtoUtils.CreateErrorResponse(request, exception, responseStatus);
});
}
以及显示错误消息的视图代码 - “oops.cshtml”:
@inherits ViewPage<ErrorResponse>
@{
ViewBag.Title = "Error";
Layout = "~/Views/Shared/_NotLoggedLayout.cshtml";
string errorMessage = "Test error message";
}
<h2>Error Message: @errorMessage</h2>
当异常发生时,我可以在视图代码中设置一个断点,并逐步将所有预期的“ErrorResponse”模型传递给视图,但我在运行它时从未看到该页面。
我检查了 Chrome 中的底层 html,它只是一个空页面:
<html>
<head>
</head>
<body>
</body>
</html>
在我从 4.5.* 升级到 Servicestack 5.0.* 之前,这一直运行良好。
不知道发生了什么。