問題タブ [httpmodule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2145 参照

asp.net - ASP.NET Post Application_Error イベント

Application_ErrorカスタムHttpModuleを使用して、送信された応答を変更できるように(ステータスコードと「場所」ヘッダーをいじり、具体的には新しい本文を作成する)、すべてのイベントハンドラーの直後に発生するイベントを見つけようとしています。

私はフックしようとしましたApplication_EndRequest(これが起動することが保証されている唯一のハンドラーであることを読んだので)が、これはリクエスト処理で遅すぎてレスポンスヘッダーを変更できず、次のようになりますHttpException

0 投票する
2 に答える
2664 参照

redirect - 中程度の信頼でGlobal.asaxからリダイレクト

Global.asaxのApplication_Errorハンドラーでリダイレクトを実行しようとしています。特別なことは何もありません。

これは完全な信頼の下でうまく機能しますが、中程度の信頼の下で機能させる必要があります。ここで作業しているコードは、共有ホスティング環境で正しく機能する必要があります(残念ながら、この要件を制御することはできません)。

ただし、テスト目的で開発環境(XP Pro / IIS 5.1)で次のようにサイトを構成すると、次のようになります。

次のエラーで失敗します。

その他の注意事項:

  • これは、Global.asaxからでもHttpModuleからでも発生します。
  • これは、Response.Redirect(somePath)でも発生します。

あなたが提供できる洞察に感謝します。私はこれについて自分の$$をグーグルで検索しましたが、喜びはありません。

ありがとう!

0 投票する
2 に答える
581 参照

asp.net - HttpHandlersとHttpModulesの奇妙さを介したasp.net2.0でのネットワークパフォーマンスの測定

HttpModuleとHttpHandlersに依存し、次のように機能するパフォーマンス測定モジュールがあります。

  1. ページのリクエストがサーバーに届きます。
  2. HttpModule_Beginは、開始時刻をCookieに書き込みます。
  3. HttpModule_Endは、終了時刻をCookieに書き込みます。
  4. クライアントでは、ページの読み込みが終了したら、HttpHandler_ProcessRequestによって処理されるAJAXを介して特別なリクエストを実行します
  5. HttpHandler_ProcessRequestで、前のHttpModule_End(Cookieに格納されている)によって書き込まれた終了時刻からDateTime.Nowを減算し、データベースに格納します。私が言及するのを忘れた1つのこと:すべてのデータはCookieを介して共有されるため、HttpHandlerは、セッションIDなどなしでCookieからデータをプルするだけです...すべての参加者は同じタイムゾーンにいます。

このプロセスはほとんどの場合正常に機能しますが、1時間を超えるネットワーク時間を報告する場合もあります。これは、終了時刻の書き込みからAJAXリクエストの起動までの時間の経過が非常に長いか、AJAXリクエストの起動からアプリサーバーに到達するまでの時間の経過が長いことを示しています。私は、この問題を実際に引き起こしている可能性があるものを理解しようとしています。なぜ操作が単にタイムアウトしないのですか?

0 投票する
2 に答える
1564 参照

asp.net - IIS - 統合パイプライン モードでの既定のドキュメントの処理が異なりますか?

Facebook からの認証を処理する HTTP モジュールがあり、クラシック パイプライン モードで正常に動作します。

ただし、統合パイプライン モードでは、モジュールが失敗する原因となっている既定のドキュメントに対する追加の要求パス スルーが表示されます。(Facebook からの) リクエストを見て、アプリにアクセスしているユーザーを取得して検証します。最初のリクエストは正常に認証されますが、投稿されたフォーム変数がない2 番目のリクエストが表示されるため、認証が失敗します。

統合パイプライン モードでは、"/" に対する http 要求により、2 つの AuthenticateRequests が連続して生成されます。

  1. AppRelativeCurrentExecutionFilePath = "~/" であるリクエスト
  2. AppRelativeCurrentExecutionFilePath = "~/default.aspx" である要求

その 2 番目の要求はすべてのフォーム値を失うため、認証に失敗します。クラシック モードでは、その 2 番目の要求のみが発生し、フォームの値が保持されます。

ここで何が起こっているのですか?

更新: これは、IIS のモジュール通知からのトレースのイメージです。私のモジュールである FBAuth は AUTHENTICATE_REQUEST を複数回見ていることに注意してください (認証用に 1 つ、認証後用に 1 つ、2 つを期待しますが、4 つ取得します)。

複数回発生したイベント

これらのイベントを繰り返し発生させない同じコードを実行している(Vista)ボックスを見つけたので、これはモジュール/フィルター構成に関係があると信じ始めています-それは期待どおりに動作します. どんな違いがあるのか​​調べてみました...

ありがとう!トム

0 投票する
1 に答える
1377 参照

c# - 複数の httpmodule インスタンス

Web アプリケーションを使用する asp.net Web サイトがあり、それらは両方とも同じアプリケーション プール (1 つのワーカー プロセス) にあります。Web サイトの web.config ファイルに読み込まれた httpmodule があり、興味深いことに、メインの Web サイトとアプリケーションの両方が httpmodule の個別のインスタンスによって提供されます。どうしてこれなの?それらは同じプロセスにあるため、1 つのインスタンスを使用する必要があるようです。

また、アプリケーションで静的変数を使用しようとすると、asp.net Web サイトとは異なるオブジェクトを指します。それらは同じプロセスにあるため、以前と同じ質問です。それらは同じオブジェクトであってはなりませんか、または.netはプロセス内に何らかの境界を課しますか?

0 投票する
2 に答える
152 参照

asp.net - IISへのすべてのインバウンド要求で任意のコードを実行するためにASP.Netフレームワークのどの部分を使用しますか?

IISの特定のWebサイトを介して送信されるすべての要求に対して.Netコードの個別のチャンクを実行したいと思います。これは完全に分離されたコードであり、その前後には何の影響もありません。リクエストからの情報をログに記録してから終了します。

これは、.Net以外のファイル(PDF、画像など)に対して実行する必要があるため、Application_OnRequestBeginまたはその他のASP.Netファイルに入れることができるものではないことに注意してください。通常は.NetFrameworkにヒットしないリクエストに対して実行する必要があります。

HTTPモジュールは私が探しているものですか?私はかなりRTFMを実行しましたが、パイプラインを操作する方法はいくつかあるようで、どれを使用すべきかよくわかりません。

0 投票する
1 に答える
87 参照

asp.net - 要求パイプラインに、要求と応答の両方が利用可能でデータが入力されているイベントがありますか?

リクエストとレスポンスの両方が入力されているリクエストパイプラインのイベントにバインドする必要があります。リクエストは単純ですが、レスポンスオブジェクトからStatusCodeが必要です。パイプラインのどの時点で応答が入力されますか?

0 投票する
2 に答える
5825 参照

asp.net - IIS でバックグラウンド スレッドを管理するためのベスト プラクティスは何ですか?

バックグラウンド スレッドを生成する HttpModule を作成しました。インプロセスで実行されるスケジュールされたタスクのようなスレッドを使用していますが、これは非常に便利です。

このスレッドを追跡するためのベスト プラクティスは何ですか? 私はこれまでにこれをやったことがなく、そのいくつかの側面について少し混乱しています:

  1. スレッドがまだ実行されているかどうかを確認するにはどうすればよいですか? 私はそれが仕事をしているのを見ますが、それがまだ生きているかどうかを知る別の方法はありますか? ProcMon をダウンロードしましたが、w3wp.exe が大量のスレッドを生成するため、どのスレッドが自分のスレッドかわかりませんでした。私はそれに名前を付けましたが、それは役に立ちませんでした。

  2. スレッドが死んだ場合、スレッドを「キャッチ」するにはどうすればよいですか? 失敗した場合に EventLog または何かに書き込むことができる Dispose メソッドはありますか? 「死亡宣告」か何か?

  3. スレッドをアクティブに停止するにはどうすればよいですか? このバックグラウンド プロセスの実行を停止したい場合、IIS をバウンスせずに強制終了するにはどうすればよいですか?

  4. HttpModule とは別に、もう一度開始する方法はありますか? (これに対する答えはノーだと思います...)

編集:明確にするために、意図は私のスレッドが消えないようにすることです。関数を実行した後、数分間スリープ状態になり、ウェイクアップして関数を再度実行します。1 つのタスクを実行して終了するようなものではありません。

0 投票する
1 に答える
2334 参照

asp.net - パイプラインの早い段階でリクエストを処理して途中で終了することはできますか?

イベント ハンドラーを EndRequest にバインドした HttpModule があります。

イベントハンドラ内でリクエストを処理する方法はありますか? つまり、コードを実行してリクエストを動かし続けたいだけではありません。コードを完全に停止し、ステータス コード 200 を返し、リクエストがパイプライン。

0 投票する
5 に答える
16757 参照

asp.net - asp.net 開発サーバーでの httpmodule のデバッグ

asp.net アプリケーション (v 3.5、Visual Studio 2008) にいくつかの http モジュールを統合したいのですが、web を実行すると起動する asp.net 開発サーバーでデバッグ中にそのようなモジュールをデバッグまたは使用する方法がわかりません。アプリ。

ソリューションにモジュール ソースを含める必要がありますか、それとも DLL を BIN にドロップするだけでよいですか? 私は 1.1 の世界出身で、まだ asp.net 開発サーバーに慣れていません。