0

場合によっては、いくつかのエラーが発生しServer.Transferます。

スレッドが中止されました。

at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride)     
at System.Web.HttpServerUtility.Execute(String path, TextWriter writer, Boolean preserveForm)     
at System.Web.HttpServerUtility.Transfer(String path)     
at App._Default.TransferToCheckLoginPage() in blahblah\Default.aspx.vb:line 31     
at App._Default.Page_Load(Object sender, EventArgs e) in blahblah\Default.aspx.vb:line 18

スレッドが中止されました。

at System.Threading.Thread.AbortInternal()     
at System.Threading.Thread.Abort(Object stateInfo)     
at System.Web.HttpResponse.End()     
at System.Web.HttpServerUtility.Transfer(String path)     
at App.ASPX.ck_login.TransferToStartPage() in blahblah\ck_login.aspx.vb:line 45     
at App.ASPX.ck_login.Page_Load(Object sender, EventArgs e) in blahblah\ck_login.aspx.vb:line 33

今奇妙なことは、転送が完了することです(場合によっては完了しないため、このエラーに興味があります)

server.transfer 中に発生する ASP.Net ライフサイクル イベントは何ですか?

あるケースでは、Server.Transfer() が拡張子 .aspx (ページ ディレクティブはありません) を持つ html ページを指しているが、インライン asp 呼び出し <% %> (および、通常の .aspx ページ)

これは現在展開されているアプリであるため、必要がなければあまり多くの変更を行うつもりはありません。私は、Server.Transferプロセスの何がスレッドを中止するのかを知りたいと思っています。

4

3 に答える 3

1

ドキュメンテーションから:

転送先のページは、別の .aspx ページである必要があります。たとえば、.asp または .asmx ページへの転送は無効です。Transfer メソッドは、QueryString コレクションと Form コレクションを保持します。

Transfer は End を呼び出し、完了時に ThreadAbortException 例外をスローします。

同じことが Response.Redirect にも当てはまります (デフォルトでは、これをオーバーライドできます)。これらのエラーは無視できます。

ただし、元のページで処理が終了しても、 に転送されたページで処理を続行する必要があります

于 2012-08-06T20:19:05.983 に答える
0

はい、そうです。無視しても問題ありません

この動作は仕様です。

http://support.microsoft.com/kb/312629

于 2012-08-06T20:18:18.537 に答える
0

私が知っているように、Server.Transferシステムがスレッド中止例外をスローし、新しいページサイクルの実行を開始します。一方Response.Redirect、このメソッドはレスポンスを正しく終了し、ステータス 302 をクライアントに送信します。

HTTP 1.0 302 Object Moved 
Location: http://www.google.com

クライアントが応答で指定された新しいページを要求するよりもlocation

于 2012-08-06T20:18:40.227 に答える