我已经开始使用教程http://www.strathweb.com/2013/12/owin-memory-integration-testing/,一切正常,但是当我对我的真实项目执行相同的步骤时,我得到StatusCode 500(内部服务器错误)作为响应。当我尝试调试api时,我意识到它甚至没有达到api控制器或动作。这是我从Startup类开始做的事情:
public class OwinStartup
{
public void Configuration(IAppBuilder appBuilder)
{
var config = new HttpConfiguration();
config.Routes.MapHttpRoute("DefaultApi", "Api/{controller}/{id}",
new { id = RouteParameter.Optional });
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
appBuilder.UseWebApi(config);
}
}
然后我试图通过这样做来获取实体:
using (TestServer server = TestServer.Create<OwinStartup>())
{
server.BaseAddress = new Uri("http://localhost/");
var response = server.HttpClient.GetAsync("Api/controllerName").Result;
var result = response.Content.ReadAsAsync<EntityModel>().Result;
Assert.IsNotNull(result);
}
当我浏览我正在设置的链接(http://localhost/api/controllerName)时,我得到了我想要的值(在浏览器中)但是它正在使用IIS。在我的情况下,我想使用OWIN testServer。我关闭IIS并运行我的测试,但仍然是相同的响应。正如我所说,我是按照教程进行的,仅此而已。 这就是我得到的: 我是否需要制作类似OwinMiddleware的东西?或者我错过了什么? 谢谢!