@IT会議室は、2009年4月15日に新システムに移行し、さらに2012年5月29日にITエンジニアに特化した
質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用くださいませ。
- PR -

【ASP.NET】Server.Transfer

投稿者投稿内容
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-10-31 20:05
引用:

AERITHさんの書き込み (2005-10-31 19:51) より:
上記のServer.Transferメソッドを使用していたのですが
try〜catchの中に入れるとThreadAbortExceptionが発生してしまい、必ずcatchを通るようになってしまいました。
調べてみた所、try〜catchの中ではServer.Transferは使えないらしく、
Response.Redirect("xxxx.aspx", false)
にて対処せよ、とのことでした。


ThreadAbortExceptionだけcatchして無視すりゃいいです。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-10-31 20:41
引用:

AERITHさんの書き込み (2005-10-31 19:51) より:
HttpServerUtility.Transfer()とnew HttpServerUtility()(←?)は同じであるけれども、


HttpServerUtilityをnewしてそいつのTransfer()を呼ぶのは、私の書いたソースと同じです、ということです。
コードでnewしたHttpServerUtilityは、現在のサーバー側処理で使われているHttpServerUtilityとは違うインスタンスです。
いくらTransfer()が"ページ遷移をする"といっても、現在サーバー側処理で使われているHttpServerUtilityのインスタンスのものを呼ばなければだめということ。

引用:

AERITHさんの書き込み (2005-10-31 19:51) より:
調べてみた所、try〜catchの中ではServer.Transferは使えないらしく、
Response.Redirect("xxxx.aspx", false)
にて対処せよ、とのことでした。


ぇ〜

Try
'処理
Catch ex As ThreadAbortException
Throw
Catch ex As Exception
'処理
End Try

でいいんじゃないですか。
AERITH
会議室デビュー日: 2005/10/14
投稿数: 15
投稿日時: 2005-11-01 16:53
こんにちは。

引用:

なちゃさんの書き込み (2005-10-31 20:05) より:
ThreadAbortExceptionだけcatchして無視すりゃいいです。


引用:

一郎さんの書き込み (2005-10-31 20:41) より:

Try
'処理
Catch ex As ThreadAbortException
Throw
Catch ex As Exception
'処理
End Try



お二方ありがとうございます。
上記のような処理で上手くいきました!
catchを複数回使えると思っていなかったため、
ThreadAbortExceptionだけcatchしたあとどうすればいいかと思っていました…

引用:

一郎さんの書き込み (2005-10-31 20:41) より:
HttpServerUtilityをnewしてそいつのTransfer()を呼ぶのは、私の書いたソースと同じです、ということです。
コードでnewしたHttpServerUtilityは、現在のサーバー側処理で使われているHttpServerUtilityとは違うインスタンスです。
いくらTransfer()が"ページ遷移をする"といっても、現在サーバー側処理で使われているHttpServerUtilityのインスタンスのものを呼ばなければだめということ。


こちらの方も納得いきました。
ここまで言われないと気付かなかったのはお恥ずかしい限りです…。


また何かあればよろしくお願いいたします。

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

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