現在、(機能している) Web サイトを Windows Azure クラウドに移行していますが、UrlRewrite モジュールに問題があります。問題は、アウトバウンド ルールによって内部サーバー エラーが発生することです。ルールを無効にすると、サイトが正しく読み込まれます。
Azure サーバー上のモジュールの順序を確認しましたが、ローカル マシンおよびホスティング サーバーとまったく同じです。web.config の次の行で静的圧縮を無効にしました。
<urlCompression doStaticCompression="false" doDynamicCompression="true" dynamicCompressionBeforeCache="false" />
問題の原因となっている書き換えルールの例を次に示します。
<rule name="cdn rewrite" preCondition="text only">
<match filterByTags="Img" pattern="^/Images/(.*)$" />
<action type="Rewrite" value="http://cdn.website.com/{R:0}" />
</rule>
また、次の前提条件が定義されています。
<preCondition name="text only">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/.+$" />
</preCondition>
関連するかどうかはわかりませんが、サイトは内部で実行されている MVC4 であり、非常に小さな 2008r2 インスタンス (osFamily="2") です。
現時点では Application Request Routing で回避策がありますが、運用サイトに Azure CDN を使用する予定はないため、URL を書き直してもらいたいと考えています。
これを Azure で動作させることができた人はいますか?
編集 - いくつかの詳細情報:
実際のエラー (firebug で報告) には、「NetworkError: 500 URL Rewrite Module Error. - http://website.cloudapp.net/」と表示されます。
イベント ビューアのログにも、この問題に関連する実際のログ ファイルにも何も記録されていません。
これを入力中に実際に修正しました-以下を参照してください