0

C# でプロキシ サーバーを作成しています。部分的なポストバックの場合を除いて、私はそれを機能させました。部分的なポストバック中に、例外がスローされています


ウェブページからのメッセージ

Sys.WebForms.PageRequestManagerParserErrorException: サーバーから受信したメッセージを解析できませんでした。このエラーの一般的な原因は、Response.Write() の呼び出しによって応答が変更された場合、応答フィルター、HttpModules、またはサーバー トレースが有効になっている場合です。

詳細: ' の近くで解析中にエラーが発生しました

<!DOCTYPE html P'.


わかった

直接アクセスしようとすると、アプリケーションは正常に動作します。プロキシ サーバー経由でアクセスすると、エラーが発生します。直接アクセスしている間は正常に動作しているため、一般的な原因であるエラー メッセージはアプリケーションにはありません。

通常のポストバックと非同期のポストバックの間には、私が知らない違いがいくつかあります。デバッグすると、通常のポストバックと部分的なポストバックの違いが見つかりませんでした。私が知っているエラーから、プロキシ サーバーは UpdatePanel html のみを返すのではなく、ページ全体の html を返しています。

誰でもそれを機能させる方法を手伝ってもらえますか?

私のプロキシ サーバー アプリケーションは基本的に特定のポートで httprequest をリッスンし、取得した HttpListenerRequest に基づいて HttpWebRequest を作成し、元の Web アプリケーションに要求を送信します。次に、HttpWebResponse を受け取り、そこから HttpListenerResponse を作成してブラウザに送信します。

私のコードはhttp://www.codeproject.com/KB/IP/r​​everseproxy.aspxにあるコードに基づいています

前もって感謝します

4

1 に答える 1

0

問題の解決策を見つけました。通常の HttpListenerRequest と部分的な HttpListenerRequest にはいくつかの違いがあります。実際には、フレームは「x-microsoftajax」というヘッダーを追加します。HttpWebRequest を作成しているときに、このヘッダーも追加しました。これで ParserError は解決しますが、フォーム認証を使用している場合はログイン ページにリダイレクトされます。HttpListenerRequest から HttpWebRequest に「Cookie」ヘッダーを追加することで、この問題も解決できます。

于 2010-07-07T09:42:12.187 に答える