0

次の順序で 4 つのページから構成されるサイトがあります。
Default.aspx
List.aspx
SubmitForm.aspx
Thankyou.aspx

IIS URL 書き換えモジュールを使用して、ランディング (既定) ページに PURL を使用します。つまり、 www.example.com /Chris123 は実際にはこれです:
www.example.com/default.aspx?UID=Chris123

SubmitForm.aspx には、フォーム データを SalesForce.com のサーバーに送信し、データをキャプチャして、Thankyou.aspx ページにリダイレクトする PostBackURL 値を持つ送信ボタンがあります。

URL 書き換えモジュールは使用していませんが、SalesForce の提出は問題なく機能していました。ただし、URL 書き換えルールが有効になっていると、ユーザーが SalesForce サーバーにアクセスする代わりにボタンをクリックすると、フォーム ページにリダイレクトされ、フィールドがクリアされ、すべてのフォーム検証が開始されます。これは基本的に、フォーム送信/リダイレクト/フォーム送信/リダイレクトのループを引き起こします...

IIS に移動し、ユーザー フレンドリー URL ルール (Default.aspx ページでのみ使用) を無効にすると、フォームは期待どおりに SalesForce に送信されます。オンに戻すと、フォームは再びそれ自体に送信されます。

私は URL 書き換えの経験があまりありません。基本的なユーザー フレンドリー タイプのシナリオだけです。最初に突っ込む場所についての提案をいただければ幸いです。

Windows Web Server 2008 を実行しています。アプリは .NET 4 Web フォームです。

4

1 に答える 1

0

わかりました。

問題は、WebResource.axd が URL Rewrite によってキャッチされていたことでした。これをルールに追加して修正しました:

<!-- The following condition prevents rule from rewriting requests to .axd files -->
<add input="{URL}" negate="true" pattern="\.axd$" />

以前にそれについて読んだことがありますが、PostBackURL が別のサーバーに送信されていたので、それが私の問題だとは思いませんでした。しかし、PostBackURL には投稿をリダイレクトするために Javascript が必要なので、それは理にかなっていると思います。r唯一の理由は、ログ ファイルが "WebResource.axd" を PURL 値として、フォームをリファラーとしてキャプチャしていたためです。

これは、私の問題を修正した実際のコードを (最後に) 見つけたページです: http://www.iis.net/learn/extensions/url-rewrite-module/url-rewriting-for-aspnet-web-フォーム

于 2013-08-06T13:41:31.783 に答える