我已阅读Error Handling,ServiceStack_Succinctly.pdf,ServiceStack 4 Cookbook以及各种SO问题,但我仍然无法完成以下工作。
我想要一种方式来展示我自己的"漂亮"任何我的服务中引发的任何异常的错误页面。如果抛出任何异常,我想将用户带到一个友好的页面,显示错误消息,而没有任何信息,只有凡人和#34;不明白。
理想情况下,我希望在维护服务请求的类型响应时保持这一点,即 不
var topicFieldID = new ID(RelatedTopic.FieldIDs.Topics); //getting the field ID
var changes = Event.ExtractParameter<ItemChanges>(args, 1); //in item:saved event handler
var oldIDs = changes.FieldChanges[topicFieldID]?.OriginalValue?.ToString().Split('|');
var newIDs = changes.FieldChanges[topicFieldID]?.Value?.ToString().Split('|');
而是
public object Get(GetOrder request)
{
return new GetOrderResponse()
{
...
}
}
我非常感谢如何使这项工作得到指导,或者这样做的例子。
感谢。
答案 0 :(得分:1)
查看Fallback Error Pages的选项,例如您可以显示/oops.cshtml
Razor页面:
public override void Configure(Container container)
{
Plugins.Add(new RazorFormat()); //Register ServiceStack.Razor Plugin
this.GlobalHtmlErrorHttpHandler = new RazorHandler("/oops"),
}
或者对于更精细的控制,使用IAppHost.CustomHttpHandlers
指定用于特定错误状态代码的自定义HttpHandlers,例如:
public override void Configure(Container container)
{
this.CustomHttpHandlers[HttpStatusCode.NotFound] =
new RazorHandler("/notfound");
this.CustomHttpHandlers[HttpStatusCode.Unauthorized] =
new RazorHandler("/login");
}