Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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
}

}

like image 822
Elad Lachmi Avatar asked Jan 25 '26 18:01

Elad Lachmi


1 Answers

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.

like image 110
Elad Lachmi Avatar answered Jan 28 '26 22:01

Elad Lachmi



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!