Относительно методов Session_End и Application_End в asp.net - PullRequest
0 голосов
/ 16 апреля 2011

Я пытаюсь реализовать класс (давайте назовем его классом CustomerConnection), который реализует интерфейс System.Web.HttpApplication. Я попытался реализовать два события session_end и application_end в этом классе следующим образом:

public class CustomerConnection: System.Web.HttpApplication
{


    protected void Session_End(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;
        SqlConnection connection = context.Items[Database_Con] as SqlConnection;
        connection.close();

    }

    protected void Application_End(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;
        //someotherEvent
    }

Но, похоже, эти события не выполняются ни для завершения приложения, ни для выхода из сеанса.

Как мне сделать так, чтобы эти события выполнялись? Это как будто я должен уведомить какое-то другое событие?

Я просто создаю новый объект класса клиента. Достаточно ли выполнить эти события или мой подход в корне неверен?

Пожалуйста, помогите мне

Спасибо в ожидании

Ответы [ 2 ]

2 голосов
/ 16 апреля 2011

Вам нужно это в global.asax:

<%@ Application Language="C#" Inherits="CustomerConnection"%>

Предостережение, я никогда не пробовал, я нашел это здесь: http://www.codedigest.com/Articles/ASPNET/34_Adding_CodeBehind_for_Gloabalasaz_x_file_in_aspnet_20.aspx

0 голосов
/ 16 апреля 2011

Созданный вами объект не связан ни с чем, поэтому он не может получать никаких событий из приложения. Вы должны поместить обработчики событий в объект, который используется для веб-приложения, то есть в файл Global.asax.cs.

Кроме того, нет события Session_End, это Session_OnEnd.

...