0

セッションの有効期限が切れたとき、ユーザーがログアウトしたとき、またはユーザーが Web アプリケーションを閉じたときに実行されるメソッドが必要です。これらのイベントをasp.netでキャッチしてメソッドを実行するにはどうすればよいですか? vs 2008/asp.net/c# で Web アプリを構築しています。

私を助けてください。

期待して感謝

4

2 に答える 2

2
use Global.asax file 

リンクを参照して、Global.asax ファイルを使用してください http://www.dotnetcurry.com/ShowArticle.aspx?ID=126

于 2011-04-16T09:49:27.750 に答える
1

ソリューションを右クリックし、新しい項目を追加します。ソリューションに Global.asax を追加します。その後、次のイベントがあります。

 <script runat="server">



        void Application_Start(object sender, EventArgs e)
        {
            // Code that runs on application startup
            //Utils.LoadExtensions();

        }

        void Application_End(object sender, EventArgs e)
        {
            ClsCollege ObjClsColledge = new ClsCollege();
            ObjClsColledge.TruncateAllUserDetails(Session["UserSessionId"].ToString());
            ObjClsColledge.TruncateAllUserDetailsPrefrance(Session["UserSessionId"].ToString());

        }

        void Application_Error(object sender, EventArgs e)
        {

            HttpContext context = ((HttpApplication)sender).Context;
            Exception ex = context.Server.GetLastError();
            if (ex == null || !(ex is HttpException) || (ex as HttpException).GetHttpCode() == 404)
            {
                return;
            }
            StringBuilder sb = new StringBuilder();

            try
            {
                sb.AppendLine("Url : " + context.Request.Url);
                sb.AppendLine("Raw Url : " + context.Request.RawUrl);

               while (ex != null)
                {
                    sb.AppendLine("Message : " + ex.Message);
                   sb.AppendLine("Source : " + ex.Source);
                   sb.AppendLine("StackTrace : " + ex.StackTrace);
                   sb.AppendLine("TargetSite : " + ex.TargetSite);
                   ex = ex.InnerException;
                }
            }
            catch (Exception ex2)
            {
                sb.AppendLine("Error logging error : " + ex2.Message);
            }

            if (BlogSettings.Instance.EnableErrorLogging)
            {
               Utils.Log(sb.ToString());
           }
            context.Items["LastErrorDetails"] = sb.ToString();
            context.Response.StatusCode = 500;

            //// Custom errors section defined in the Web.config, will rewrite (not redirect)
            //// this 500 error request to error.aspx.


        }

        void Session_Start(object sender, EventArgs e)
        {




         }

        void Session_End(object sender, EventArgs e)
        {
            ClsCollege ObjClsColledge = new ClsCollege();
            ObjClsColledge.TruncateAllUserDetails(Session["UserSessionId"].ToString());
            ObjClsColledge.TruncateAllUserDetailsPrefrance(Session["UserSessionId"].ToString());
        }






</script>

イベント Session_start()、Session_End() および Application_End() を使用すると、イベントを追跡できます。

于 2011-04-16T11:40:30.573 に答える