12
votes

L'application ASP.NET passe à 500.21 ... jusqu'à la réinitialisation de l'IIS + CLEAR temporaire cache ASP.NET

Nous voyons un motif étrange dans notre laboratoire QA. Nous avons deux applications ASP.NET, chacune déployée sur la même boîte Windows 2008 SP2 +. Nous avons notre piscine d'application exécutant dans un compte de domaine et défini pour ne jamais recycler. Le même pool de 1 app est utilisé par les deux applications.

Après plusieurs heures d'exécution, de nouveaux utilisateurs surfent sur une page de notre application Obtenez la page d'erreur IIS7, avec une erreur 500.21.

Si nous ne faisons que:

1) IISRESET 2) Changer de dossier sur C: \ Windows \ Microsoft.net \ Frameword64 \ V2.0.50727 \ Fichiers ASP.NET temporaires et "RD" Les 2 applications.

puis surfez sur nos applications Web, tout va bien.

Puis plusieurs heures plus tard, cependant, les erreurs 500.21 retournent.

Qu'est-ce qui me frappe aussi étrange est la relation apparente entre effacer les dossiers "Fichiers ASP.NET temporaires" et le problème disparu. J'ai une pratique consacrée aux dossiers "Fichiers ASP.NET temporaires" lors de l'installation d'une nouvelle version de nos applications (s), mais pas autrement.

Cette relation sonne-t-elle familière à quelqu'un? Y a-t-il une nouvelle fonctionnalité IIS7 New IIS7 au travail ici?

texte d'erreur:

Erreur de serveur dans l'application "Site Web par défaut / Pais"
Informations Internet Services 7.0
Résumé des erreurs
Erreur HTTP 500.21 - Erreur de serveur interne
Handler "pageHandlerferfactory-intégré" a un mauvais module "gantEdPiPelineRandler" dans sa liste de module
Informations d'erreur détaillées
Module IIS Noyau web
Notification ExecuTereQuestHandler
Hangler PageHandlerlery-intégré
Code d'erreur 0x8007000D
URL demandée http: // localhost: 80 / pais / admin.aspx

Chemin physique C: \ 0_GEORGIA \ GA_IS_100142 \ portfolioarchiveImageImageImageServer \ admin.aspx
Méthode de connexion Anonyme de
Utilisateur de connexion anonyme de
Causes les plus probables:
• ASP.NET n'est pas installé ni incomplètement installé.
• Une erreur typographique de configuration s'est produite.
• Une évaluation défavorable de condition préalable existe.
Choses que vous pouvez essayer:
• Si GestionEdPIPelineHandler est manquant, assurez-vous que:
o ManageDengine est dans.
o GestionEdPIPelineRandler est dans, avec des pré-conditions correctes.
• Installez ASP.NET.
• Assurez-vous que tous les systèmes.webebserver/handlers@modules sont dans System.webserver/Modules@name.
• Examiner les pré-conditions dans les sections et les sections.
Liens et plus d'informations IIS Noyau ne reconnaît pas le module.
Voir plus d'informations »

Merci d'avance,

Howard Hoffman


3 commentaires

Pouvez-vous poster le texte intégral de la page d'erreur?


En outre, je diviserais chaque application en son propre AppPool pour voir si vous pouvez réduire le problème.


Veuillez noter que nous avons pris les conseils de David et divisé en 2 piscines. Je peux également ajouter que le recyclage du pool d'applications, au lieu de la page de l'exécution IISRESET + Suppression du dossier GAGI temporaire ASP.NET Files GAGI, semble également corriger le problème. La question est toujours ... pourquoi?


4 Réponses :


-1
votes

Le problème plus probable est dans le code de l'application. Le dossier temporaire des fichiers ASP.NET contient des copies pré-compilées de votre application et sera actualisée chaque fois que les fichiers d'applications sont accessibles. Vous pouvez pré-compiler ces fichiers avec aspnet_compiler.exe dans le dossier \ Windows \ Microsoft.net \ Framework \ v2.0.50727 \. Utilisez l'option -errorstack permettant de générer plus d'informations sur l'erreur que vous obtenez. Les applications de course longue qui ne recyclent pas se heurteront à des problèmes s'ils utilisent beaucoup de mémoire ou conservent de grandes quantités de données dans un état de session INPROCC. Si vos sessions contiennent de grandes quantités d'informations, envisagez d'utiliser un gestionnaire de session basé sur SQLSERVER.


1 commentaires

Nous avons effectivement déterminé que le problème était le system.web.httpserverutilité.exeCute (chaîne, textwriter, booléen) surcharge - vraiment. Comme il n'y a pas de pipeline HTTP au moment de l'appel de la surcharge, il corrompre le temps d'exécution. C'est une question Microsoft. Ils l'ont confirmé. Je souhaite qu'ils répètent aussi ... mais le SimpleMailwebEventProvider est un travail autour.



9
votes

Nous avons trouvé le problème réel avec l'aide d'appui de SP ASP.NET. C'est assez subtil. Je pense que MS a dit qu'ils résoudraient le problème dans une suite sur la libération des tissus d'applications (qui est maintenant RTM). Doigts croisés.

Le problème survient constamment dans ce scénario:

1) application Web ASP.NET ne fonctionne pas encore. Il comprend les fixations de WCF Net.Pipe et / ou Net.TCP. Je pense que la même chose se produirait pour Netmsmq mais ne l'a pas essayé.

2) Une demande de service d'activation Windows de Netpipe Inbound W Windows est la demande initiale qui démarre le domaine de l'application.

3) Application utilise un pool d'applications IIS 'intégré' IIS (IIS7 ou IIS 7.5)

4) L'application utilise httpserverutilité.execute au cours de la 1ère demande.

Il s'avère que notre application ait tiré un événement de surveillance de la santé ASP.NET au cours de la même opération de WCF - l'opération même qui a provoqué le service d'activation Windows (était) pour démarrer notre application. Notre configuration de surveillance de la santé comprend le TemplateMailwebEventProvider.

Notre application utilise un pool d'applications IIS 'intégré' IIS.

Le TemplatedMailwebEventProvider est implémenté pour créer un corps de messagerie comme HTML. Il utilise le system.web.httpserverutilité.execute (chaîne, texte texte, booléen) surcharge.

Pour ce cas d'utilisation, la surcharge est la mauvaise chose - il initialise un pipeline HTTP basé sur le pool de «classique». Parce que c'est le mauvais pipeline pour un pool d'applications IIS «intégré», le pipeline est corrompu avec la prochaine demande HTTP - qui est en fait la première demande HTTP entrante.

Vous obtenez donc l'erreur 500.21 pour toutes les demandes HTTP futures jusqu'à ce que la demande soit recyclée. Vous n'avez pas besoin d'effectuer les étapes relativement drastiques de IISRESET, cartographier le cache ASP.NET temporaire pour effacer l'erreur - il suffit de redémarrer l'application en sauvegarde web.config et évitez le chemin de démarrage particulier qui provoque l'erreur.

MS a suggéré une solution de contournement pour nous - Utilisez le SimpleMailwebEventProvider au lieu du TemplateMailWebEventProvider. Cela fonctionne, car il prend httpserverutilité.execute hors du chemin de code de la première demande.

Je voudrais avoir suggéré que MS introduisait un nouveau web.config paramètre booléen - usertiteGratée - qui permettrons à l'application spécifier le type de piscine d'app pour initialiser avec. Evidemment, IIS ne transfère pas le type de piscine d'applications à ASP.NET, alors ma sugggezetion est une solution pour que .

Le fournisseur TemplatedMailWebEvent est beaucoup plus convivial que le SimpleMailwebEventProvider, et nous espérons que la SEP aborde la question.

merci tout pour la lecture,

Howard Hoffman


1 commentaires

Je note que Afaik Microsoft n'a jamais traité la cause fondamentale. Ils sont déplacés de la surveillance de la santé ASP.NET en faveur des investissements dans le centre système et des technologies connexes. Le problème est toujours là dans Windows Server 2012 - N'a pas coché Windows Server 2016 - et le travail autour fonctionne toujours.



19
votes

Face au même problème et le correctif était facile.

1) Ouvrez l'invite de commande Visual Studio 2010.

2) Exécutez la commande aspnet_regiis.exe -i


2 commentaires

Pourriez-vous ajouter une explication de ce que «aspnet_regiis.exe -i»?


Il installe ASP.NET sur IIS. J'ai eu ce problème parce que .NET 4 a été installé sur ma machine avant IIS. Je devais exécuter cette commande pour obtenir ASP.NET travaillant sur ma machine.



0
votes

1. IIS 7 jette une exception comme indiqué ci-dessous de
Entrez la description de l'image ici de
de
2. Ouvrir l'invite de commande Visual Studio 2010 en mode administrateur et exécuter aspnet_regiis.exe -i de
Entrez la description de l'image ici de

3. Problème Correction, comme indiqué ci-dessous, l'application ASP.net et l'application ASP.NET MCV fonctionnent en douceur. de
Entrez la description de l'image ici


1 commentaires

Bon travail documentant clairement votre solution. Il existe en effet de nombreuses façons de répondre à l'erreur 500.19 . Votre solution n'était pas la remède à notre problème particulier. Notre problème particulier n'a été résolu que par les étapes de la réponse acceptée.