У меня есть приложение WebApi со следующим контроллером:
public class ContentController : ApiController
{
[HttpPost]
public HttpResponseMessage Post(string contentType)
{
//do stuff
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
Маршрут выглядит так
routes.MapHttpRoute("content",
"api/content/{contentType}",
new { controller = "Content", contentType = RouteParameter.Optional });
Когда я размещаю службу в IIS/cassini, если я отправляю POST в api/content/whatever
, то, как и ожидалось, действие моего контроллера срабатывает.
Однако,
У меня есть тестовый проект, который SelfHosts этот API
using (var client = new HttpClient(Server))
{
var result = client.PostAsync(BaseAddress + "api/content/whatever"
var message = result.Content.ReadAsStringAsync().Result;
}
Если я отлажу модульный тест и войду в него, result
будет:
{StatusCode: 500, ReasonPhrase: «Внутренняя ошибка сервера», версия: 1.1, содержимое: System.Net.Http.ObjectContent`1[[System.Web.Http.HttpError, System.Web.Http, версия = 5.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35]], Заголовки: { Content-Type: application/json; кодировка=utf-8 }}
К сожалению, message
буквально просто
произошла ошибка
Есть ли способ отладить собственный WebApi, чтобы выяснить, что вызывает эту ошибку?
Настроить
Server
- это просто HttpServer
из базового класса, который содержит мой собственный сервер, новый, такой:
var httpConfig = new HttpSelfHostConfiguration(BaseAddress);
new ApiServiceConfiguration(httpConfig).Configure();
var server = new HttpSelfHostServer(httpConfig);
server.OpenAsync().Wait();
Server = server;
ApiServiceConfiguration.Configure()
? Вы установили для параметраconfig.IncludeErrorDetailPolicy
значение IncludeErrorDetailPolicy.Always? - person CodeCaster   schedule 06.11.2013