Web APIコントローラーのビジュアルスタジオで自動統合テストを行っています。テストで次のコードを取得しました。
var url = serverAddress + "/api/PostalCodes?postalCode=" + postalCodeToFind;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("accept", "application/json");
HttpResponseMessage response = client.GetAsync(url).Result;
response.EnsureSuccessStatusCode();
次のエラーが表示されます。
System.Net.Http.HttpRequestException: 応答ステータス コードが成功を示していません: 404 (見つかりません)。
使用されるセルフホスト サーバー:
private const string serverAddress = "http://localhost:8080";
[TestInitialize]
public void Initialize()
{
config = new HttpSelfHostConfiguration(serverAddress);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.MaxReceivedMessageSize = 2024 * 2024;
config.MaxBufferSize = 2024 * 2024;
server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
}
奇妙な点は、IIS に Web API コントローラーがある場合、同じ URL が正常に機能し、値を返すことです。また、同じ URL で投稿を行っていますが (postalCodeToFind クエリ パラメーターなしで)、それもうまく機能します...
手がかりはありますか?