- PR -

[ASP.NET 2.0]アプリケーションの終了について

1
投稿者投稿内容
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-08-09 15:31
お世話になります。

ウィンドウの右上端の[×]ボタンを選択した際に、
終了処理を実施する必要があったため、
「Global.asax」をプロジェクトに追加しました。

しかし、Application_Endイベントが実行されませんでした。


ウィンドウの右上端の[×]ボタンを選択した際に、終了処理を実施するには
どうしたらいいのでしょうか?

ご教授頂きたくお願い致します。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-08-09 15:41
どこかで見たことがある質問内容だと思ったので、ちょっと検索してみると同
じようなことで悩まれている方が他にもいらっしゃるみたいですね。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32092&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20768&forum=7

とりあえず、上の方のスレッドの burton999 さんの投稿で結論が出ている
のではないかと思いますよ。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-08-09 16:23
お邪魔しま〜す。

Application_EndイベントはIISが停止する時、Webサーバ停止時に動きますよね。
で、ウィンドウ右上端の[×]ボタンはクライアントのIE終了ですよね。
各々どちら側の処理か理解すれば自ずと回答が出るのでは...。

<body>タグのonunloadイベントを使えば[×]ボタンを取得できます。
でも、[×]ボタンだけでなく、window.close()でも発生しますし、別画面へのリンクでも発生するな〜〜〜。
う〜〜ん、画面の一番上に細長いフレーム切っちゃうってのは?

問題は、そのときにサーバ側の終了処理を行う方法ですよね〜。
Ajaxなんかどうでしょ...試したこと無いけど、非同期ですればいいかも。
隠しボタンを押すのは駄目かな〜。

回答ではなく、方向性を示しただけかも。ごめんね
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-08-09 16:31
具体的には、どういった処理を終了処理として行ないたいのでしょうか?
別の回避策が出てくるかもしれませんよ。

私も「設計を見直すべき」だと思いますが・・・
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-09 16:34
引用:
Application_EndイベントはIISが停止する時、Webサーバ停止時に動きますよね。

ASP.NET アプリケーションのライフ サイクルの概要には、
「アプリケーションがアンロードされる前に、アプリケーションの有効期間に一度だけ呼び出されます。」
と書いてあります。IISが停止しなくても発生する気がしますけどね。

昔の資料には、「サイトのセッションの最後のユーザーがタイムアウトを起こしたときに発生する。」
なんて書いてあるんですよね。
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-08-09 17:01
Webアプリから別のシステム(NEC製のStarOffice)にログインする仕様となっています。
通常は「終了」ボタンでログアウト処理を実施しているのですが、
強制終了させるとログアウト処理を実施できないため、
Webアプリを起動することができませんでした。。。

メンバーと相談した結果、

 強制終了した場合の予想される弊害を調査して、
 事前にユーザーに提示することで対応する

ということになりました。

ご教授頂きました皆様、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)