开发者

asp.net - global.asax in asp.net 2.0 app

开发者 https://www.devze.com 2023-03-13 01:16 出处:网络
I created a global.asax file for an asp.net application. I run some code in the session_start method. The code does not get executed. Is there some type of procedure for using a global.asax file in as

I created a global.asax file for an asp.net application. I run some code in the session_start method. The code does not get executed. Is there some type of procedure for using a global.asax file in asp.net 2.0?

I have the asax file itself and also a codebehind file.

Thank you!

Edit: asax file:

<%@ Application Codebehind="Global.asax.cs" Inherits="GrowUp.Global" %>

The code behind file:

using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
namespace Ligdol 
{
/// <summary>
/// Summary description for Global.
/// </summary>
public class Global : System.Web.HttpApplication
{
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    public Global()
    {
        InitializeComponent();
    }   

    protected void Application_Start(Object sender, EventArgs e)
    {
        Application["HostName"] = System.Configuration.ConfigurationSettings.AppSettings["HostName"];
        Application["counter"] = 1;
    }

    protected void Session_Start(Object sender, EventArgs e)
    {
        // Get the count from the application variable
    int counter = int.Parse(Application["counter"].ToString());
    //Check if a cookie exists.
    if(HttpContext.Current.Request.Cookies["ligdolVersion"] != null)
    {
        //If a cookie exists, we need to redirect the user to the respective site.
        if(HttpContext.Current.Request.Cookies["ligdolVersion"].ToString() == "new")
        {
            Response.StatusCode = 302;
            Response.Status = "Moved temporarily";
            Response.Redirect("http://beta.ligdol.co.il");
            return;
        }
        else if(HttpContext.Current.Request.Cookies["ligdolVersion"].ToString() == "old")
        {
            return;
        }
    }
    else if (counter == 40)
    {
        // If a cookie does not already exist,
        //we need to check if the user is to be allowed to continue to the old site
        //or be redirected to the new site.


        //Note in a file that a user was redirected, so we can get an estimate of how many are being redirected.
        System.IO.TextWriter tw = new System.IO.StreamWriter(@"redirect.log");
        tw.WriteLine("Redirected to new site.");
        tw.Close();
        // Reset counter.
        Application["counter"] = 1;
        //write cookie made to expire in 30 days, by then the experiment will be over (we hope!).
        HttpCookie cookie = new HttpCookie("ligdolVersion");
        DateTime dtNow = DateTime.Now;
        TimeSpan tsSpan = new TimeSpan(30, 0, 0, 0, 0);
        cookie.Expires = dtNow + tsSpan;
        cookie.Value = "new";
        Response.Cookies.Add(cookie);
        Response.Redirect("http://beta.ligdol.co.il");
        return;
    }
    else
    {
        System.IO.TextWriter tw = new System.IO.StreamWriter(@"redirect.log");
        tw.WriteLine("Redirected to old site.");
        tw.Close();
        HttpCookie cookie = new HttpCookie("ligdolVersion");
        DateTime dtNow = DateTime.Now;
        TimeSpan tsSpan = new TimeSpan(30, 0, 0, 0, 0);
        cookie.Expires = dtNow + tsSpan;
        cookie.Value = "old";
        Response.Cookies.Add(cookie);
        return;
    }

    }

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {

    }

    protected void Application_EndRequest(Object sender, EventArgs e)
    {

    }

    protected void Application_AuthenticateRequest(Object sender, EventArgs e)
    {

    }

    protected void Application_Error(Object sender, EventArgs e)
    {

    }

    protected void Session开发者_开发百科_End(Object sender, EventArgs e)
    {

    }

    protected void Application_End(Object sender, EventArgs e)
    {

    }

    #region Web Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {    
        this.components = new System.ComponentModel.Container();
    }
    #endregion
}

}


The issue was the codebehind file. Once I put the code inline inside the asax file, it worked. This might be the only solution for old website projects.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号