我有一些时间来做研究和开发,并一直在玩自己,从今天起。
我希望拥有一个用于所有数据交互的OWIN WebAPI服务,以及一个单独的利用angular的Web前端SPA项目。
所有的代码都是无耻地从各种随机博客文章中盗取的,这仅仅是为了对付这种“新技术”。
启动
public class Startup
{
public void Configuration(IAppBuilder app)
{
#if DEBUG
app.UseErrorPage();
#endif
app.UseWelcomePage("/");
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseWebApi(config);
app.Run(context =>
{
if (context.Request.Path.ToString() == "/fail")
{
throw new Exception("Random exception");
}
context.Response.ContentType = "text/plain";
return context.Response.WriteAsync("App Init");
});
}
}AccountsController
public class AccountsController : ApiController
{
// GET api/<controller>/5
public string Get(int id)
{
throw new Exception("Random exception");
}
}如果我导航到http://localhost:85/fail,我会得到一个非常性感的错误页面。
但是,当我点击http://l0calhost:85/api/accounts/5,时,错误被公开为json/xml。
发布于 2013-11-04 15:18:22
目前(5.0版) Web没有办法强制内部发生的异常在管道中进一步传播。正如您注意到的,它当前将异常转换为具有json/xml内容的http响应消息。然而,在即将发布的版本中,我们将提供此功能作为全局错误处理功能的一部分,您可以在其中插件您的错误处理机制。
IMO看到Web错误的错误页面并不是很有用。如果您的客户是进行这些调用的Javascript,那么如何显示这个html?此外,当前浏览器具有良好的调试支持,可以跟踪调用并从响应中找出问题。
https://stackoverflow.com/questions/19765211
复制相似问题