VS2012 開発サーバーで問題なく動作する ASP.NET MVC/WebAPI 混合プロジェクトがあります。標準の MVC{controller}/{action}/{id}
ルートと、追加の WebAPI ルートがありapi/{controller}/{id}
ます。で始まるリクエスト/api/...
は WebAPI に送信され、その他は通常の MVC に送信されます。
ローカル IIS にデプロイすると、通常の MVC ルートが機能します。ただし、/api
WebAPI を呼び出すと例外が発生します
Access to the path 'C:\inetpub\wwwroot\myapp\web.config' is denied.
inetpub
次に、フォルダーとそのサブフォルダーに適切なセキュリティ アクセス許可を設定しようとしました。これは何の役にも立たず、通常の MVC リクエストが機能しているため、問題がセキュリティ関連であるとは思えません。
次に、Sysinternals Process Monitorw3wp.exe
を開始して、リクエスト中に何が行われているかを確認しました。結局のところ、IIS は次の場所を探しweb.config
ます。
C:\inetpub\wwwroot\myapp\api\web.config
C:\inetpub\wwwroot\myapp\api\mycontroller\web.config
もちろん、そこはありませんweb.config
。
両方のルートを認識するように IIS を設定するにはどうすればよいですか?