Web サイトのユーザーがレポートをキューに入れられるようにしたい (要求を SQL テーブルに入力する)。キューは、SQL サーバーからキューを読み取り、レポートを実行し、レコードの reportcomplete フィールドを更新する Windows アプリによって処理されます。「レポートを生成しています」のようなメッセージを投稿し、レポートが利用可能になったときにユーザーに警告できるようにする必要があります。SQLDependency をいじり、onchange イベントを発生させることはできますが、もちろん、ブラウザーに既に読み込まれているページに戻ることはできません。これを達成する方法についてのアイデアはほとんどありません。SQLDependency が間違った方法である可能性があると考えています。何か案は?
1 に答える
0
HTTP はクライアントに接続できません。唯一の解決策は、通常はロングテール (例: Comet Ajax ) リクエストを介して、クライアントがポーリングすることです。したがって、元のページ リクエストが返され、結果ページでスクリプトが開始され、ASP.Net コードに入り、イベントでブロックするバックグラウンド リクエストが送信されます。SQLDependency がイベントを通知するため、ロング テール リクエストが再度アクティブになり、エージェントに応答が返されます。エージェントは Ajax 呼び出しを完了し、ページを更新できます。少なくともこれは 10000 フィート ビューです。これは機能しますが、スケーリングしません (主に、Ajax 要求によってリソースが拘束され、ASP.Net 処理スレッドがブロックされるため)。よりスケーラブルなアプローチが存在しますが、はるかに複雑です。
于 2011-05-12T22:06:43.637 に答える