次のようなリクエストを変更するためにURLの書き換えを取得しようとしています
に
このように、URL 書き換えルールを Web 構成にポップしました
<rewrite>
<rules>
<rule name="SiteReWrite" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://bar.com/{C:1}/"/>
<conditions>
<add input="{HTTP_HOST}" pattern="(.*)\.bar\.com" />
</conditions>
</rule>
</rules>
</rewrite>
しかし、404.4 エラーが発生します。トレース ログ ファイルを見ると、そこにこれが表示されます
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
<EventID>0</EventID>
<Version>1</Version>
<Level>4</Level>
<Opcode>42</Opcode>
<Keywords>0x0</Keywords>
<TimeCreated SystemTime="2012-12-03T05:54:01.237Z"/>
<Correlation ActivityID="{00000000-0000-0000-1000-0080030000FC}"/>
<Execution ProcessID="7312" ThreadID="3180"/>
<Computer>ULTRA</Computer>
</System>
<EventData>
<Data Name="ContextId">{00000000-0000-0000-1000-0080030000FC}</Data>
<Data Name="OldUrl">/</Data>
<Data Name="NewUrl">http://bar.com/foo/</Data>
</EventData>
<RenderingInfo Culture="en-US">
<Opcode>URL_CHANGED</Opcode>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{D42CF7EF-DE92-473E-8B6C-621EA663113A}</EventGuid>
</ExtendedTracingInfo>
</Event>
NewUrl からは、すべてが桃色のように見えます。注: このインスタンスはキャッシュされているように見えますが、以前にイベントでルールの一致を見たことがあります。
URL http://bar.com/foo/を入力すると、正常に機能します。ユーザーに新しい URL を見せたくありません。ユーザーは、bar.com/foo ではなく foo.bar.com にいると考える必要があります。これは、mvc アプリにあるルーティング用です。
なぜこの奇妙な動作をしているのか、誰にも分かりますか? これには IIS Express 8 を使用していますが、IIS はまだ試していません。