WinFormsクライアントとバックエンドサーバーの間に配置するために、wcfルーティングサービス(IIS 7.5)をセットアップしました。
httpヘッダー「Accept-Language」の消失が原因と思われるバグを解決しようとしています。クライアントはリクエストでこのヘッダーを送信しますが、フィドラー(および私が観察している動作)によると、IISから送信されるリクエストには「Accept-Language」ヘッダーがありません。これにより、サーバーは、クライアントによって指定されたロケールではなく、en-USロケールでフォーマットされたデータを送り返します。
このURLで、彼らは私がやりたいことをする方法の例を示しています。これは私がそれに基づいて行った構成です(私はすでにURLの書き換えを行っていました)。serverVariablesの部分は、私の問題に対処するためのビットです。
<system.webServer>
<!-- These url rewrite rules require the presence of the URL Rewrite 2.0 iis extension -->
<rewrite>
<rules>
<!-- Accept connections to service1.asmx by rewriting that part of the url to WcfRouter.svc/service1 -->
<rule name="service1Rule" stopProcessing="true">
<match url="^(.*)svc/service1.asmx" />
<serverVariables>
<set name="HTTP_ACCEPT_LANGUAGE" value="da-DK" />
</serverVariables>
<action type="Rewrite" url="{R:1}WcfRouter.svc/service1" />
</rule>
<!-- Ditto for service2.asmx -->
<rule name="service2Rule" stopProcessing="true">
<match url="^(.*)svc/service2.asmx" />
<serverVariables>
<set name="HTTP_ACCEPT_LANGUAGE" value="da-DK" />
</serverVariables>
<action type="Rewrite" url="{R:1}WcfRouter.svc/service2" />
</rule>
</rules>
</rewrite>
</system.webServer>
URLの書き換えは正常に機能します。私の唯一の残りの問題は、httpヘッダーのマングリングです。IISマネージャーで、URL書き換えモジュール内で許可されたサーバー変数としてHTTP_ACCEPT_LANGUAGEを設定しました。私は何が欠けていますか?