我有一个带有以下控制器的 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 中托管服务时,如果我api/content/whatever
按预期 POST 到 then ,我的控制器操作就会被命中。
然而,
我有一个测试项目,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]],标题:{ 内容类型:应用程序/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;