webAPIプロジェクトを作成しましたが、IISでホストを開始したいと考えています。RouteAttributeとIISアプリケーションを使用すると404エラーが発生する
コントローラのメソッドは次のようになります。
[TokenAuthentication]
[HttpGet]
[Authorize(Roles=Roles.PING)]
[Route("~/Ping")]
public DateTime Ping()
{
return DateTime.UtcNow;
}
私WebApiConfigは、次のようになります。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
config.MapHttpAttributeRoutes();
GlobalConfiguration.Configuration.Filters.Add(new ValidateModelAttribute());
//config.Routes.MapHttpRoute(
// name: "DefaultApi",
// routeTemplate: "{controller}/{id}",
// defaults: new { id = RouteParameter.Optional }
//);
}
}
私は、Visual Studioを経由して、プロジェクトを実行し、リンクhttp://localhost:53722/pingに行くとき私が得ます私が期待している不正な応答。
仮想パス "/ Account"を持つアプリケーションにIIS上のWebサイトを置くと、404応答が返され、StaticFile Handlerを使用しようとしています。
オンラインで検索すると、runAllManagedModulesForAllRequestsがtrueに設定されています。私はまた、 "/アカウント/"のように見えるConfigure ASP.NET Web API application as a Virtual Directory under ASP.NET MVC applicationが経路に干渉してはならないことを発見しました。
同じサイトで複数のマイクロサービスを実行しているため、APIをルートディレクトリに配置できません。
仮想ディレクトリを使用してルートを取得するにはどうすればよいですか?
おかげで、 スティーブン