public HttpResult GET(QueryMetadataRequest request)
{
throw HttpError.NotFound("MY MESSAGE GOES HERE");
//....
}
如上所述抛出一个例外。我没有在错误页面中看到我的消息。
未找到请求处理程序:
Request.HttpMethod:GET Request.PathInfo:/ metadata / fefe / dsd Request.QueryString:Request.RawUrl:/ metadata / fefe / dsd
如何让ServiceStack返回详细的404错误消息?
答案 0 :(得分:0)
该消息应该出现在HTTP响应状态描述中,您看到的页面是ServiceStack中内置的HTML页面请求(例如,来自浏览器)的默认404 HttpHandler
。如果从数据格式调用,例如:
/metadata/fefe/dsd.json
/metadata/fefe/dsd?format=json
您应该看到返回给ajax客户端的结构化错误响应。
当不在DebugMode时,404页面会按设计发出有限的信息。我只是added a commit将扩展页面以包含错误消息,如果在下一个v4.0.37 +版本now available on MyGet提供时提供的话。
您可以使用以下命令删除ServiceStack AppHost中的内置404处理程序:
CustomErrorHttpHandlers[HttpStatusCode.NotFound] = null;
或添加您自己的:
CustomErrorHttpHandlers[HttpStatusCode.NotFound] =
new RazorHandler("/404");
这将允许您返回自定义Razor页面,例如/404.cshtml