2009-07-31 8 views
1

Je développe un HttpModule et utilise Global.asax. J'ai développé une classe qui dérive de HttpApplication, mais la méthode Application_Start de ma classe ne s'exécute jamais (je crée un fichier au début de Application_Start mais le fichier ne crée jamais, et c'est pourquoi je pense que Application_Start ne s'exécute jamais). J'utilise VSTS2008 + C# + .Net 3.5.Numéro Global.asax

Des idées ce qui ne va pas et comment déboguer? Je veux confirmer que je devrais copier le Global.asax dans le répertoire racine de mon répertoire virtuel de site Web, correct? Dois-je configurer quelque chose dans web.config pour laisser fonctionner le HttpModule?

Répondre

1

Avez-vous ajouté votre module à la section httpModules de votre fichier web.config? Voir: http://msdn.microsoft.com/en-us/library/ms227673.aspx

+0

Merci, je développe Global.asax, est-ce un HttpModule? – George2

+0

En fait, j'ai seulement utilisé Application_Start, Application_End et Application_Error dans global.asax, est-ce un httpmodule? Je suis confus parce que je pense que la classe dérive de IHttpModule est le module http et doit explicitement enregistrer dans web.config, et si je viens d'utiliser Global.asax, pas besoin de s'inscrire explicitement dans web.config et il sera automatiquement utilisé? Des commentaires? – George2

1

vous avez besoin d'ajouter une entrée dans web.config http://msdn.microsoft.com/en-us/library/9b9dh535.aspx

+0

Merci, je développe Global.asax, est-ce un HttpModule? – George2

+0

En fait, j'ai seulement utilisé Application_Start, Application_End et Application_Error dans global.asax, est-ce un httpmodule? Je suis confus parce que je pense que la classe dérive de IHttpModule est le module http et doit explicitement enregistrer dans web.config, et si je viens d'utiliser Global.asax, pas besoin de s'inscrire explicitement dans web.config et il sera automatiquement utilisé? Des commentaires? – George2

2

Application_Start exécute une seule fois lorsqu'une application démarre première fois. Avez-vous redémarré votre application?

Oui, Global.asax doit être dans le répertoire racine.

Vous devez ajouter votre nouveau module ASP.NET dans la section web.config <httpModules>.

+0

Oui, 1. Je redémarre le pool d'applications. Cela signifie-t-il que je redémarre mon application? 2. "Vous devez ajouter votre nouveau module ASP.NET dans la section web.config ." - pouvez-vous me montrer un échantillon s'il vous plaît? En fait, j'ai seulement utilisé Application_Start, Application_End et Application_Error dans global.asax, est-ce un httpmodule? Je suis confus parce que je pense que la classe dérive de IHttpModule est le module http et doit explicitement enregistrer dans web.config, et si je viens d'utiliser Global.asax, pas besoin de s'inscrire explicitement dans web.config et il sera automatiquement utilisé? Des commentaires? – George2

+1

1. Après le redémarrage d'AppPool, votre application s'est arrêtée. Maintenant, quand votre application recevra la première demande Application_Start (devrait) exécuter. 2. Comment enregistrer un nouveau module - le lien de réponse alex. Global.asax - c'est "l'instance de votre application", ce n'est pas un module ASP.NET. Vous pouvez gérer ici les événements d'application "globaux". –

+0

Merci Tadas, 1. donc si j'utilise Global.asax, alors pas besoin d'enregistrer des modules dans web.config? 2. Je trouve que si j'envoie une requête au fichier ashx pour la même application web, Application_Start de Global.asax n'est jamais exécuté. Est-ce vrai? Des idées? – George2