Qual é o propósito de global.asax em asp.net


100

Como podemos usar global.asax no asp.net? E o que é isso?

Respostas:


119

O MSDN apresenta uma descrição da finalidade do arquivo global.asax.

Efetivamente, global.asax permite que você escreva um código que é executado em resposta a eventos de "nível de sistema", como o início do aplicativo, o término de uma sessão, a ocorrência de um erro de aplicativo, sem ter que tentar enfiar esse código em cada página do seu site.

Você pode usá-lo escolhendo Add> New Item> Global Application Class no Visual Studio. Depois de adicionar o arquivo, você pode adicionar o código em qualquer um dos eventos listados (e criados por padrão, pelo menos no Visual Studio 2008):

  • Application_Start
  • Application_End
  • Session_Start
  • Session_End
  • Application_BeginRequest
  • Application_AuthenticateRequest
  • Erro de aplicação

Existem outros eventos aos quais você também pode se conectar, como "LogRequest".


2
A entrada para global.asax foi excluída da Wikipedia.
Cathy Sullivan

Podemos adicionar o arquivo global.asax para o Windows Form?
Jeeva Jsb

@JeevaJsb, não. O conteúdo de global.asax é (geralmente) eventos que são acionados pelo ciclo de vida do aplicativo IIS / ASP.net, portanto, não há nada para acionar o código em um aplicativo WinForms.
Rob,

Eu me pergunto por que eles não podem ter apenas um código herdado da classe HttpApplication e não exigir o arquivo asax. O global.asax.cs contém todo o material então por que a necessidade de um arquivo asax específico que contenha apenas este <% @ Application Codebehind = "Global.asax.cs" Inherits = "XXXXX" Language = "C #"%>
Simples Companheiro em

67

Explicação de eventos globais de asax

Application_Init: disparado quando um aplicativo é inicializado ou chamado pela primeira vez. É invocado para todas as instâncias do objeto HttpApplication.

Application_Disposed: disparado pouco antes de um aplicativo ser destruído. Este é o local ideal para limpar recursos usados ​​anteriormente.

Application_Error: Disparado quando uma exceção não tratada é encontrada no aplicativo.

Application_Start: disparado quando a primeira instância da classe HttpApplication é criada. Ele permite que você crie objetos que são acessíveis por todas as instâncias de HttpApplication.

Application_End: Disparado quando a última instância de uma classe HttpApplication é destruída. Ele é disparado apenas uma vez durante a vida útil de um aplicativo.

Application_BeginRequest: Disparado quando uma solicitação de aplicativo é recebida. É o primeiro evento disparado para uma solicitação, que geralmente é uma solicitação de página (URL) que um usuário insere.

Application_EndRequest: o último evento disparado para uma solicitação de aplicativo.

Application_PreRequestHandlerExecute: disparado antes que a estrutura da página ASP.NET comece a executar um manipulador de eventos como uma página ou serviço da Web.

Application_PostRequestHandlerExecute: disparado quando a estrutura da página ASP.NET termina de executar um manipulador de eventos.

Applcation_PreSendRequestHeaders: disparado antes que a estrutura da página ASP.NET envie cabeçalhos HTTP para um cliente solicitante (navegador).

Application_PreSendContent: disparado antes que a estrutura da página ASP.NET envie conteúdo para um cliente solicitante (navegador).

Application_AcquireRequestState: disparado quando a estrutura da página ASP.NET obtém o estado atual (estado da sessão) relacionado à solicitação atual.

Application_ReleaseRequestState: disparado quando a estrutura da página ASP.NET conclui a execução de todos os manipuladores de eventos. Isso faz com que todos os módulos de estado salvem seus dados de estado atuais.

Application_ResolveRequestCache: disparado quando a estrutura da página ASP.NET conclui uma solicitação de autorização. Ele permite que os módulos de cache atendam à solicitação do cache, evitando assim a execução do manipulador.

Application_UpdateRequestCache: disparado quando a estrutura da página ASP.NET conclui a execução do manipulador para permitir que os módulos de cache armazenem respostas a serem usadas para lidar com solicitações subsequentes.

Application_AuthenticateRequest: Disparado quando o módulo de segurança estabeleceu a identidade do usuário atual como válida. Neste ponto, as credenciais do usuário foram validadas.

Application_AuthorizeRequest: disparado quando o módulo de segurança verifica que um usuário pode acessar os recursos.

Session_Start: disparado quando um novo usuário visita o site do aplicativo.

Session_End: Disparado quando a sessão de um usuário atinge o tempo limite, termina ou ele sai do site do aplicativo.



6

Global.asax é o arquivo de aplicativo asp.net.

É um arquivo opcional que lida com eventos gerados pelo ASP.NET ou por HttpModules. Principalmente usado para eventos de início / término de aplicativo e sessão e para tratamento de erros globais.

Quando usado, deve estar na raiz do site.


3

O diretório raiz de um aplicativo da web tem um significado especial e determinado conteúdo pode estar presente nessa pasta. Ele pode ter um arquivo especial denominado “Global.asax”. A estrutura ASP.Net usa o conteúdo do global.asax e cria uma classe em tempo de execução que é herdada de HttpApplication. Durante a vida útil de um aplicativo, o ASP.NET mantém um pool de instâncias HttpApplication derivadas de Global.asax. Quando um aplicativo recebe uma solicitação http, a estrutura da página ASP.Net atribui uma dessas instâncias para processar essa solicitação. Essa instância é responsável por gerenciar todo o tempo de vida da solicitação à qual está atribuída e a instância só pode ser reutilizada depois que a solicitação for concluída, quando for retornada ao pool. Os membros da instância em Global.asax não podem ser usados ​​para compartilhar dados entre solicitações, mas o membro estático pode ser. Global.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.