オプションで Web ポータルを「単一インスタンス」にできるかどうか尋ねられました。WinForms アプリでの同じアイデアについては、Hanselman のブログのこの投稿を参照 してください。
同じクライアント マシンに 2 つのショートカットがあるとします。
http://MyServer/MyWebPortal/Default.aspx?user=username&document=Foo http://MyServer/MyWebPortal/Default.aspx?user=username&document=Bar
最初のショートカットをクリックすると、Web ポータルが起動してログインし、ドキュメント「Foo」が表示されます。2 番目のショートカットをクリックすると、Web ポータルの実行中のインスタンスにドキュメント「バー」が表示されます。
私の現在のアプローチは次のとおりです。ページの読み込みで、最初のインスタンスとしてクライアントごとのアプリケーション変数を作成します。2 番目のインスタンスは、Application 変数を検索して、ポータルがクライアントで実行されているかどうかを確認します。そうである場合、2 番目の URL は別の Application 変数に記録され、2 番目のインスタンスは強制的に終了されます。ASP.Net AJAX タイマーを作成して、表示するドキュメントの Application 変数をポーリングしようとしました。この種の作品。2 番目の要求にすばやく応答するために、タイマー間隔を 2 秒に設定しました。これにより、ポストバックが頻繁に発生するため、ポータルの使用が煩わしくなります。
私のアプローチを使用して、2 番目のインスタンスが最初のインスタンスに通知して、ポーリングせずにアプリケーション変数をチェックする方法はありますか? この問題に対するより良い全体的なアプローチはありますか?
前もって感謝します