2016-06-14 1 views
0

У меня есть сервер образцаПочему TestServer (AspNetCore) дает ошибку 404 для статических файлов?

var host = new WebHostBuilder() 
       .UseKestrel() 
       .UseContentRoot(Directory.GetCurrentDirectory()) 
       .UseIISIntegration() 
       .UseStartup<Startup>() 
       .Build(); 

      host.Run(); 

с конфигурацией в классе запуска:

public void Configure(IApplicationBuilder app) 
{ 
     app.Run(async (context) => 
     { 
      await context.Response.WriteAsync("Hello World!"); 
     }); 
} 

и я использую тест XUnit (обучение):

 public TestFixture() 
     { 
      var builder = new WebHostBuilder().UseStartup<TStartup>(); 
      _server = new TestServer(builder); 

      Client = _server.CreateClient(); 
      Client.BaseAddress = new Uri(address); 
     } 

, а затем

 var response = await Client.GetAsync("http://localhost:51021/"); 
     Assert.Equal(HttpStatusCode.OK, response.StatusCode); 
     var responseString = await response.Content.ReadAsStringAsync(); 
     var content = await response.Content.ReadAsStringAsync(); 
     Assert.Contains("Hello World!", content); 

Все в порядке (200). Теперь я меняю Startup.cs

public void Configure(IApplicationBuilder app) 
    { 
     app.UseDefaultFiles(); 
     app.UseStaticFiles(); 
     //app.Run(async (context) => 
     //{ 
     // await context.Response.WriteAsync("Hello World!"); 
     //}); 
    } 

Если я запустить приложение с браузером, все в порядке (index.html показано). Но если я назову его с помощью TestServer, я получаю (404 Не найдено). Где моя ошибка?

ответ

Смежные вопросы