プロキシサーバー(A)を経由するとき、アプリケーションサーバー(B)から送信された自己参照リンクは、プロキシを代わりにホストとして使用します。ここURLリライトで非HTML応答のタグ内のコンテンツを一致させる
は例です:(B)から
応答含ま:<a href="http://apps/path">path</a>
プロキシ(A)は、として書き換える必要がある:<a href="http://proxy/path">path</a>
通常、これは、HTML応答を検査するアウトバウンドルールを作成することによって行われますURLを含むタグの場合は、アプリサーバーへの参照を探して書き換えます。ここで
は通常のルール GUI versionです:
IsHTML
はのように定義されて
<outboundRules>
<rule name="Outbound Links" preCondition="IsHTML" enabled="true">
<match filterByTags="A, Form, IFrame, Img, Input, Link, Script" pattern="(https?:\/\/proxy|^)\/(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true" />
<action type="Rewrite" value="http://apps/{R:2}" />
</rule>
:
<preConditions>
<preCondition name="IsHTML">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="text\/html" />
</preCondition>
は、ページのコンテンツの一部を介して返されるということである問題XHR要求最小限、これはHTMLの前提条件に失敗します。
が、私はまた、有効なHTMLではありませんので、しかし、URL書き換えはまだトラブルタグに返されたテキストを解析していxhr
のコンテンツタイプを含めるようにルールを拡張することができます。私はこれを行うときしかし、私はエラーを取得する
|6383|updatePanel|ctl00_mainContentPlaceHolder_contentUpdatePanel|
<div id="ctl00_mainContentPlaceHolder_resultsPanel">
<a href="http://apps/path">path</a>
</div>
...
|0|hiddenField|__EVENTTARGET||0|hiddenField|__EVENTARGUMENT||0|hiddenField|
:
Sys.WebForms.PageRequestManagerParserErrorException:
The message received from the server could not be parsed.