問題タブ [ihttpasynchandler]

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 投票する
1 に答える
238 参照

asp.net - Comet - IHttpAsyncHandler を使用した HTTP ストリーミング - チャンクが機能しない

IHttpAsyncHandler とフラッシュを使用して HTTP ストリーミングを実装しようとしています。

基本的に、私は時々応答をフラッシュしています - タイムアウトまで開かれた接続を保存します - その後、クライアントは別の接続を開始する必要があります。

フラッシュは実際に機能し、クライアントはフラッシュが発生すると受信しますが、応答は集約されています。たとえば、次のフラッシュを送信するとします。

クライアントは次のフラッシュを取得します (XMLHttpRequest.responseText 内)。

ご覧のとおり、クライアントは最終的に非常に大きなメッセージ (以前のフラッシュがすべて含まれます) を処理する必要があります。フラッシュを操作する方法はありますが、フラッシュごとに応答をきれいにする方法はありますか?

応答ヘッダーに「Transfer-Encoding:chunked」というヘッダーが含まれていることに注意してください。これは、実際にはコンテンツをチャンクで取得する必要がありますが、代わりに集約されたメッセージを取得することを意味します。

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

c# - IHttpAsyncHandler のスレッド

この記事を読んで、IHttpAsyncHandler についてある程度知っています。

下の図によると、AsyncHandler を呼び出すと 2 つのスレッドが作成されます。

要求が来ると、IIS はスレッド 1 を取得してこの要求を処理し、beginXXX メソッドを呼び出すとスレッド 2 が作成され、この実際のロジックを処理します。

私の質問は次のとおりです。

スレッド 2 が実行されているとき、接続はまだ維持され、応答を待っています。

スレッド 2 が実行されている場合、スレッド 1 のステータスはどうなりますか? 寝てる?それともリリースされますか?

スレッド 1 がスリープ状態の場合、スレッド 2 が終了すると、スレッド 1 が起動され、応答が送信されますか??

スレッド 1 が解放された場合、スレッド 2 が終了すると、スレッド 1 として新しいスレッドが作成されますか? そして、この新しいスレッド 1 がクライアントに応答を送信します。

スレッド 1 とスレッド 2 は同じスレッド プールにありますよね?? もしそうなら、利用可能なスレッド数はバランスが取れています。このようにする目的は何ですか?

ここに画像の説明を入力

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

c# - IHttpAsyncHandler フラッシュ - ワーカー スレッドと io スレッド

IHttpAsyncHandlerメソッドと withBeginProcessRequestを使用していEndProcessRequestます。EndProcessRequestメソッドの下に次のコードがあるとします。

メソッド自体はWrite内部バッファーにのみ書き込みますが、EndProcessRequest終了すると、バッファーはストリームにフラッシュされ、接続が閉じられます。

私の質問は、どのスレッドがフラッシュを行っているのですか? EndProcessRequestコードまたは IO スレッドを実行したワーカー スレッド?

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

c# - イメージ サーバーの IHttpHandler または IHttpAsyncHandler

私の仕事は、イメージ サーバーを開発することです。

  • ディスクから画像を読み込む
  • HTTP パラメータに従って、サイズを変更します
  • 元の画像に 1 つまたは複数の透かしを適用する

問題は、どのテクノロジーを使用すればよいかということです。私は を使用しますが、このシナリオでは使用した方が高速になるのでしょうかIHttpHandler?IHttpAsyncHandler

で画像を非同期に処理するメリットはありIHttpHandlerますか?

また、NancyFx などの高レベルのフレームワークを検討するか、単にコントローラー (MVC2) から画像を返す必要がありますか?

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

c# - IHttpAsyncHandler.EndProcessRequest の IAsyncResult が null になることはありますか?

次のコードを検討してください。

ReSharper は、(条件が常に false であることを示すことによって)resultあり得ないことを示唆しています。nullただし、IAsyncResultは参照型でnullあるため、可能な値です。私は2つの可能性を思いつきました:

  • ReSharperresultが決してnull. ReSharper を使用してIHttpAsyncHandlerソース コードを見ると、 に関連付けられている属性が表示されませんEndProcessRequest
  • ReSharper は、IHttpAsyncHandler保証IAsyncResultが決してならないことを認識していますnull。ただし、ドキュメントはどちらの方法でも手がかりを提供しません。

IAsyncResult非同期タスクの進行状況を追跡できるため、null にならないのは妥当と思われます。誰かが洞察を提供してもらえますか?

0 投票する
0 に答える
981 参照

c# - 新しいジョブでの HttpContext セッション null (Quartz.Net)

ジョブの数を制限する Web データ処理用のスケジューラーをまとめたいので、Quartz.Net フレームワークを使用し、それを IHttpAsyncHandler の上に配置しました。

引数を介して HttpContext をジョブに渡しましたが、これは正常に機能しますが、context.Session を取得したい場合は null です。これは、処理ジョブを独自のキューに追加し、HttpAsyncHandler プロセスが終了したため意味があります。私は試していませんが、結果を返すことも同じ理由で失敗すると思います:

私が持っている 1 つのアイデアは、ロックを宣言して、このループを ProcessRequest に追加できるということです。

しかし、これが最良のアイデアであるかどうかはわかりません。

結果を返すことができるように、ハンドラーの HttpContext を維持するにはどうすればよいですか? または、Quartz ジョブからの結果を ProcessRequest に戻し (Javascript の promise のように、つまり $.when.then)、context.Response を介して送り返すこともできますか?

それとも、Quartz を完全に破棄して、最初に HttpAsyncHandler にジョブのスケジューリングを任せたほうがよいのでしょうか?

https://stackoverflow.com/questions/33642861/processing-job-scheduling-with-httpasynchandler