ServiceStack不显示404的详细消息

时间:2015-01-19 03:47:19

标签: servicestack

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错误消息?

1 个答案:

答案 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