【发布时间】:2017-03-13 18:03:58
【问题描述】:
我正在使用 HttpClient 调用此 Web API
using (var client = new HttpClient(new HttpClientHandler() { Credentials = _credentials }))
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
return await client.PostAsJsonAsync(controlActionPath, entityObject);
}
Web API 控制器我抛出以下错误:
throw new DuplicateNameException("User already exists.");
但是网络应用总是收到内部服务器错误而不是DuplicateNameException。
如果有人提出从 Web API 将确切异常返回到 Web 应用程序的最佳方法,那将会很有帮助。
【问题讨论】:
-
您在控制器中抛出的异常必须被转换为 HTTP 消息才能返回给您的客户端。默认情况下,Web API 正在处理异常并将其包装在 HTTP 状态代码 500(内部服务器错误)中,然后可能会执行一些操作,例如在响应正文中为您的异常编写堆栈跟踪。我不确定是否要在响应中返回确切的异常而不执行诸如序列化异常、返回它然后在客户端反序列化之类的操作。
-
能发一下Web API Action Method的代码吗?
标签: c# asp.net asp.net-web-api