最近 Azure Web ロールに移行した C# MVC4 アプリケーションがあります。Azure プラットフォームで問題なくサイトを公開/実行できますが、Azure 開発ファブリックを使用してローカルで実行しようとすると、IIS と IIS Express が一般的な 403 エラーをスローします。
多数の投稿で言及されているのを見たので、web.configに次を追加しようとしましたが、役に立ちませんでした。このソリューションは、管理されたパイプラインを介してすべてのリクエストを実行しているため、とにかく大ハンマーのアプローチのように思えますが、それでも、試してみることにしました。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"></modules>
<handlers>
<remove name="UrlRoutingHandler"/>
</handlers>
</system.webServer>
アプリケーションルートの「robots.txt」ファイルにアクセスできることを確認したため、サーバーが起動して正しい場所を指していますが、MVC ページはまったく提供されません。
この SO answerの解決策も試しました。そこにもサイコロはありません。
また、Azure Web ロールを IIS Express ではなく IIS で実行するように切り替えてみました。そこでも同じ 403 エラーが発生します。徹底するために、自分のマシンでローカル (Azure 以外) で実行されている他の MVC アプリが正常に動作していても、aspnet_regiis -irを実行しました。
編集
これは興味深いです... F5 キーを押すと (私の Azure プロジェクトは私のスタートアップ プロジェクトです)、Azure コンピューティング/ストレージ エミュレーターが起動し、ブラウザーが開きますhttp://127.0.0.1:81/
。これは、403 エラーが発生する URL です。
ただし、(Express ではなく) IIS を使用していて、デプロイ時に Azure によって作成された IIS の Web サイトにアクセスし、[Web サイトの管理] を右クリックして [参照] を選択すると、http://localhost:82/
. 127.0.0.1 の代わりに「localhost」と 81 の代わりに 82 のポートに注意してください。サイトを問題なく閲覧でき、ブレークポイントにヒットするなどします。http://127.0.0.1:82
(IP を使用してポート 82 を使用して) 試してみると、まだ 403 が表示されます。
何か案は?