Application ASP.NET 2.0 sur IIS 5 entraînant une erreur (aspnet_wp.exe (PID: XXXX) s'est arrêté de manière inattendue.)

StackOverflow https://stackoverflow.com/questions/233478

Question

Après avoir hébergé une application Web ASP.NET 2.0 sur un serveur Windows 2000 (IIS 5). Je n'ai pas pu naviguer sur le site Web.

Le message d'erreur suivant était affiché sur le navigateur et trois entrées du journal des événements ont été ajoutées ...

Message d'erreur sur le navigateur

  

Application serveur non disponible L'application Web à laquelle vous tentez d'accéder sur ce serveur Web est actuellement indisponible. Veuillez cliquer sur le bouton "Actualiser". bouton dans votre navigateur Web pour réessayer votre demande.

Entrées du journal des événements

  

Type d'événement: Erreur
  Source de l'événement: ASP.NET 2.0.50727.0
  Catégorie d'événement: Aucun
  Numéro d'événement: 1000
  Date: 24/10/2008
  Heure: 15h45:26
  Utilisateur: N / A
  Ordinateur: XXXXX
  Description: aspnet_wp.exe (PID: XXXX) s'est arrêté de manière inattendue.

     

Type d'événement: Erreur
  Source de l'événement: ASP.NET 2.0.50727.0
  Catégorie d'événement: Aucun
  Numéro d'événement: 1088
  Date: 24/10/2008
  Heure: 15h45:26
  Utilisateur: N / A
  Ordinateur: XXXXX
  Description: la requête n’a pas pu être exécutée car le domaine d’application n’a pas pu être créé. Erreur: 0x80070005 L'accès est refusé.

     

Type d'événement: avertissement
  Source de l'événement: ASP.NET 2.0.50727.0
  Catégorie d'événement: Aucun
  Numéro d'événement: 1073
  Date: 24/10/2008
  Heure: 15h45:26
  Utilisateur: N / A
  Ordinateur: WEBDEV
  Description: Impossible d'initialiser le AppDomain: / LM / W3SVC / 1 / Root / WebApplicationName
  Exception: System.IO.FileLoadException
  Message: Impossible de charger le fichier ou l'assembly 'System.Web, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances. L'accès est refusé.   StackTrace: at System.Reflection.Assembly.nLoad (AssemblyName nomFichier, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark & ??amp; stackMark, Boolean throwOnFileNotFound, Boolean pourIntrospection)
     at System.Reflection.Assembly.InternalLoad (AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark & ??amp; stackMark, Boolean forIntrospection)

     at System.Reflection.Assembly.InternalLoad (String assemblyString, Evidence assemblySecurity, StackCrawlMark & ??amp; stackMark, Boolean forIntrospection)

     at System.Activator.CreateInstance (String, assemblyName, String, nomName, Boolean ignoreCase, BindingFlags bindingAttr, classeur Binder, Object [] args, Culture, Info culture, Object [] activationAttributes, Evidence securityInfo, StackCrawlMark & ??amp; stackMark)
     sur System.Activator.CreateInstance (String nomName, String typeName)
     at System.AppDomain.CreateInstance (String nomName, String typeName)
     at System.AppDomain.CreateInstance (String nomName, String typeName)
     sur System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment (String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
     sur System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors (String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

Toutes les idées ...

** Modifier **

Et pourquoi System.IO.FileLoadException est levé pour accéder à l'assembly System.Web?

Était-ce utile?

La solution

J'ai découvert que, lorsque le dossier du site Web était copié sur le serveur, il héritait des autorisations de sécurité du dossier parent, qui ne détenait que l'autorisation de l'administrateur, des administrateurs et du gestionnaire. Comptes système.

j'ai ajouté

  • IUSER_MACHINENAME (compte invité Internet)
  • ASPNET (compte d'ordinateur ASP.NET)

Avec Lire & amp; Exécutez , la liste du contenu des dossiers et les lectures .

Même si le problème est résolu, j'ai encore quelques questions

Il ressort clairement de la troisième entrée du journal des événements que ApplicationManager ne parvient pas à créer le HostingEnvironment qui se trouve dans l'assembly System.Web.

Comme FileLoadException est levé pour System.Web, il semble que le processus de travail ASP.NET n’ait pas accès au dossier GAC.

Pourquoi l''exception FileLoadException est-elle générée pour accéder à System.Web?

Autres conseils

À première vue, vous disposez d'un ensemble d'autorisations incorrect pour votre installation ASP.NET. Généralement, le mieux est de désinstaller et de réinstaller la partie ASP.NET. Vous pouvez le faire facilement en procédant comme suit.

  1. Ouvrez l'invite de commande pour C: \ windows \ microsoft.net \ framework \ v2.0.50727
  2. exécutez la commande suivante: aspnet_regiis.exe -u
  3. exécutez la commande suivante: aspnet_regiis.exe -i

Cela désinstallera ASP.NET et se réinstallera, ce qui devrait ensuite établir les autorisations appropriées pour le compte.

Cette erreur signifie que votre code a renvoyé une exception qui s'est écrasée ou a provoqué l'arrêt de IIS. Les exceptions courantes qui en sont la cause sont OutOfMemoryException et StackOverflowException.

Vous obtenez une exception FileLoadException, mais il pourrait y avoir une exception OutOfMemoryException sous-jacente ou similaire, ce qui en fait la cause fondamentale. Sans savoir ce que vous essayez de charger et le code qu'il contient, il est impossible de dire ce qui cause réellement votre problème.

La première chose à faire pour éliminer un problème lié à l'ensemble de chargement est d'essayer de réfléchir à ce problème dans un faisceau de test et de voir si le même problème se produit. Si tel est le cas, le problème vient de la DLL que vous essayez de charger, pas d'IIS.

J'ai eu le même problème et ça n'a pas disparu avec aspnet_regiis avec -u et -i et beaucoup d'autres ont suggéré ici . Mais après avoir nettoyé les fichiers & # 8220;% windir% \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET & # 8221; dossier et a donné à ce dossier des autorisations en lecture-écriture à l'utilisateur à partir de la section d'identité d'emprunt d'identité dans web.config, le problème a disparu. Il ne suffisait pas de donner ces droits à l'utilisateur ASPNET local.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top