2017-02-17 5 views
0

以下は私のコードです。これはセッションの処理に適しています。しかし、問題は私がエラーを得るmasterpageのログアウトボタンをクリックしたときです。スレッドアボート例外。メールページからログアウトページへ

System.Threading.ThreadAbortException:スレッドが中止されました。コードの下

私はマスターページからのログアウトボタンをクリックすると、ログインページに戻ってredirectする方法について必要なヘルプ...

masterpageである私のメインaspxファイルからです。以下は

protected async void Page_Load(object sender, EventArgs e) 
    { 
     if (Session["mail"] == null) 
     { 

      Response.Redirect("~/login.aspx", false); 
      Context.ApplicationInstance.CompleteRequest(); 
     } 
     else 
     { 

      await Task.Run(() => retrivelast()); 
     } 
    } 

はlinkbutton2_clickが私のログアウトイベントでありログアウトイベント

protected void LinkButton2_Click(object sender, EventArgs e) 
    { 
     Session.Abandon(); 
     HttpContext.Current.Session.Clear(); 
     HttpContext.Current.Session.Abandon(); 
     HttpContext.Current.Response.Cookies.Add(new HttpCookie("mail",    "")); 
     Response.Redirect("login.aspx"); 
    } 

のためのマスターページ内のコードです。

答えて

0

は で次のことをResponse.redirect("login.aspx");を交換してみてください:

Response.Redirect("login.aspx", false); 
HttpContext.Current.ApplicationInstance.CompleteRequest(); 
Visible = false; 

あなたの問題は、デフォルトのリダイレクトがThreadAbortExceptionのをスローする別のメソッドを呼び出すことです。

は、このアプローチ(およびより一般的なソリューション)の詳細については、以下を参照してください。

https://www.codeproject.com/tips/561490/asp-net-response-redirect-without-threadabortexcep

別のオプションは、ThreadAbortExceptionのをキャッチされました。

関連する問題