1 votes

Problème de permissions ou de configuration ASP.Net / IIS

Nous avons une ferme de serveurs Web à 3 serveurs exécutant une application ASP.Net 3.5 sur IIS6, Windows Server 2003. Nous venons d'installer une mise à jour de l'application, et deux des trois serveurs fonctionnaient bien, mais le troisième a immédiatement commencé à avoir des problèmes. En essayant de démarrer le site Web, nous voyons cette exception dans les journaux :

System.IO.FileLoadException: Impossible de charger le fichier ou l'assembly 'System.EnterpriseServices.Wrapper.dll' ou l'une de ses dépendances. Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. La réinstallation de l'application peut résoudre ce problème. (Exception de HRESULT : 0x800736B1)
Nom de fichier : 'System.EnterpriseServices.Wrapper.dll' ---> System.Runtime.InteropServices.COMException (0x800736B1) : Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. La réinstallation de l'application peut résoudre ce problème. (Exception de HRESULT : 0x800736B1)
   at System.Reflection.Assembly._nGetModules(Boolean loadIfNotFound, Boolean getResourceModules)
   at System.Reflection.Assembly.nGetModules(Boolean loadIfNotFound, Boolean getResourceModules)
   at System.Reflection.Assembly.GetTypes()
   at System.Web.Mvc.ControllerTypeCache.GetAllControllerTypes(IBuildManager buildManager)
   at System.Web.Mvc.ControllerTypeCache.EnsureInitialized(IBuildManager buildManager)
   at System.Web.Mvc.DefaultControllerFactory.GetControllerTypeWithinNamespaces(String controllerName, HashSet`1 namespaces)
   at System.Web.Mvc.DefaultControllerFactory.GetControllerType(String controllerName)
   at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
   at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
   at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

et à partir de là :

System.Runtime.InteropServices.COMException (0x800736B1) : Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. La réinstallation de l'application peut résoudre ce problème. (Exception de HRESULT : 0x800736B1)
   at System.Reflection.Assembly._nGetModules(Boolean loadIfNotFound, Boolean getResourceModules)
   at System.Reflection.Assembly.nGetModules(Boolean loadIfNotFound, Boolean getResourceModules)
   at System.Reflection.Assembly.GetTypes()
   at System.Web.Mvc.ControllerTypeCache.GetAllControllerTypes(IBuildManager buildManager)
   at System.Web.Mvc.ControllerTypeCache.EnsureInitialized(IBuildManager buildManager)
   at System.Web.Mvc.DefaultControllerFactory.GetControllerTypeWithinNamespaces(String controllerName, HashSet`1 namespaces)
   at System.Web.Mvc.DefaultControllerFactory.GetControllerType(String controllerName)
   at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
   at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
   at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Jusqu'à présent, j'ai essayé :

  1. Redémarrer IIS
  2. Redémarrer le serveur
  3. Réinstaller le framework .net
  4. Copier EnterpriseServices.dll et EnterpriseServices.Wrapper.dll dans le répertoire html/bin
  5. Exécuter aspnet_regiis -i
    • donne une erreur : La génération du contexte d'activation a échoué pour C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll. Message d'erreur de référence : Accès refusé.

Je suis donc un peu bloqué. Des idées ?

1voto

Floor Points 1

Le problème était que les autorisations dans le GAC étaient cassées. Pour corriger :

  1. désenregistrer shfusion.dll avec regsvr32 pour pouvoir accéder à c:\windows\assembly
  2. réinitialiser les autorisations pour que le service Réseau puisse accéder au GAC
  3. réenregistrer shfusion.dll

Pour être sûr, exécutez également aspnet_regiis.exe -ga "CompteUtilisateur" pour corriger les autorisations de metabase IIS.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X