Jaki jest cel global.asax w asp.net

101

Jak możemy używać global.asax w asp.net? I co to jest?

Harikrishna
źródło

Odpowiedzi:

119

W witrynie MSDN przedstawiono zarys przeznaczenia pliku global.asax.

W efekcie global.asax pozwala na pisanie kodu, który jest uruchamiany w odpowiedzi na zdarzenia „na poziomie systemu”, takie jak uruchomienie aplikacji, zakończenie sesji, wystąpienie błędu aplikacji, bez konieczności umieszczania tego kodu w każdym stronie Twojej witryny.

Możesz go użyć, wybierając pozycję Dodaj> nowy element> globalna klasa aplikacji w programie Visual Studio. Po dodaniu pliku możesz dodać kod pod dowolnym ze zdarzeń, które są wymienione (i utworzone domyślnie, przynajmniej w programie Visual Studio 2008):

  • Application_Start
  • Application_End
  • Session_Start
  • Session_End
  • Application_BeginRequest
  • Application_AuthenticateRequest
  • Błąd aplikacji

Są też inne zdarzenia, do których możesz się podłączyć, na przykład „LogRequest”.

Obrabować
źródło
2
Wpis dotyczący global.asax został usunięty z Wikipedii.
Cathy Sullivan
Czy możemy dodać plik global.asax dla formularza Windows?
Jeeva Jsb
@JeevaJsb, nie. Zawartość global.asax to (ogólnie) zdarzenia, które są wyzwalane przez cykl życia aplikacji IIS / ASP.net, więc nic nie wyzwala kodu w aplikacji WinForms.
Rob
Zastanawiam się, dlaczego nie mogą mieć po prostu kodu dziedziczącego po klasie HttpApplication i nie wymagającego pliku asax. Plik global.asax.cs zawiera wszystko, więc dlaczego potrzebny jest konkretny plik asax, który zawiera tylko ten <% @ Application Codebehind = "Global.asax.cs" Inherits = "XXXXX" Language = "C #"%>
Proste Fellow
68

Wyjaśnienie globalnych wydarzeń asax

Application_Init: uruchamiane, gdy aplikacja jest inicjowana lub jest wywoływana po raz pierwszy. Jest wywoływana dla wszystkich instancji obiektu HttpApplication.

Application_Disposed: uruchamiane tuż przed zniszczeniem aplikacji. To idealna lokalizacja do sprzątania wcześniej używanych zasobów.

Application_Error: Wywoływane, gdy w aplikacji zostanie napotkany nieobsługiwany wyjątek.

Application_Start: wyzwalane podczas tworzenia pierwszego wystąpienia klasy HttpApplication. Umożliwia tworzenie obiektów, które są dostępne dla wszystkich instancji HttpApplication.

Application_End: uruchamiane, gdy ostatnie wystąpienie klasy HttpApplication zostanie zniszczone. Jest uruchamiany tylko raz w okresie istnienia aplikacji.

Application_BeginRequest: wywoływane po odebraniu żądania aplikacji. Jest to pierwsze zdarzenie wywoływane przez żądanie, które często jest żądaniem strony (adresem URL), które wpisuje użytkownik.

Application_EndRequest: ostatnie zdarzenie wywołane dla żądania aplikacji.

Application_PreRequestHandlerExecute: uruchamiane, zanim struktura strony ASP.NET rozpocznie wykonywanie procedury obsługi zdarzeń, takiej jak strona lub usługa sieci Web.

Application_PostRequestHandlerExecute: uruchamiane, gdy struktura strony ASP.NET zakończy wykonywanie procedury obsługi zdarzeń.

Applcation_PreSendRequestHeaders: uruchamiane, zanim struktura strony ASP.NET wyśle ​​nagłówki HTTP do klienta żądającego (przeglądarki).

Application_PreSendContent: uruchamiane, zanim struktura strony ASP.NET wyśle ​​zawartość do żądającego klienta (przeglądarki).

Application_AcquireRequestState: uruchamiane, gdy struktura strony ASP.NET pobiera bieżący stan (stan sesji) związany z bieżącym żądaniem.

Application_ReleaseRequestState: wywoływane, gdy struktura strony ASP.NET kończy wykonywanie wszystkich programów obsługi zdarzeń. Powoduje to, że wszystkie moduły stanu zapisują swoje aktualne dane o stanie.

Application_ResolveRequestCache: uruchamiane, gdy struktura strony ASP.NET zakończy żądanie autoryzacji. Umożliwia buforowanie modułów do obsługi żądań z pamięci podręcznej, omijając w ten sposób wykonywanie procedury obsługi.

Application_UpdateRequestCache: wywoływane, gdy struktura strony ASP.NET kończy wykonywanie procedury obsługi, aby umożliwić modułom buforującym przechowywanie odpowiedzi, które mają być używane do obsługi kolejnych żądań.

Application_AuthenticateRequest: uruchamiane, gdy moduł zabezpieczeń ustali, że tożsamość bieżącego użytkownika jest ważna. W tym momencie poświadczenia użytkownika zostały zweryfikowane.

Application_AuthorizeRequest: uruchamiane, gdy moduł zabezpieczeń zweryfikuje, że użytkownik ma dostęp do zasobów.

Session_Start: wywoływane, gdy nowy użytkownik odwiedza witrynę sieci Web aplikacji.

Session_End: uruchamiane, gdy sesja użytkownika przekroczy limit czasu, zakończy się lub opuści witrynę sieci Web aplikacji.

Nithin Paul
źródło
6

Global.asax to plik aplikacji asp.net.

Jest to opcjonalny plik, który obsługuje zdarzenia wywoływane przez ASP.NET lub HttpModules. Używany głównie do zdarzeń rozpoczęcia / zakończenia aplikacji i sesji oraz do globalnej obsługi błędów.

Kiedy jest używany, powinien znajdować się w katalogu głównym witryny.

Oded
źródło
4

Katalog główny aplikacji internetowej ma szczególne znaczenie i może w nim znajdować się określona zawartość. Może mieć specjalny plik o nazwie „Global.asax”. Platforma ASP.Net wykorzystuje zawartość global.asax i tworzy klasę w czasie wykonywania, która jest dziedziczona z HttpApplication. W okresie istnienia aplikacji ASP.NET utrzymuje pulę wystąpień HttpApplication pochodzących z Global.asax. Gdy aplikacja odbiera żądanie http, struktura strony ASP.Net przypisuje jedno z tych wystąpień do przetworzenia tego żądania. To wystąpienie jest odpowiedzialne za zarządzanie całym okresem istnienia żądania, do którego jest przypisane, a wystąpienie może zostać ponownie wykorzystane dopiero po zakończeniu żądania, gdy zostanie ono zwrócone do puli. Elementy członkowskie instancji w Global.asax nie mogą być używane do udostępniania danych między żądaniami, ale statyczny element członkowski może. Światowy.

sandeep mvn
źródło
1

Global.asax może służyć do obsługi zdarzeń wynikających z aplikacji. To łącze zapewnia dobre wyjaśnienie: http://aspalliance.com/1114

Matt
źródło