ASP.Net/IIS uprawnienia lub problemy z konfiguracją


Mamy farmę sieci Web z 3 serwerami, na których działa aplikacja ASP.Net 3.5 na IIS6, serwer Windows 2003. Właśnie zainstalowaliśmy aktualizację aplikacji i dwa z trzech serwerów działały prawidłowo, ale trzeci zaczął mieć problemy od razu. Podczas próby uruchomienia witryny w dziennikach widzimy ten wyjątek:
System.IO.FileLoadException: Could not load file or assembly 'System.EnterpriseServices.Wrapper.dll' or one of its dependencies. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)
File name: 'System.EnterpriseServices.Wrapper.dll' ---> System.Runtime.InteropServices.COMException (0x800736B1): This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from 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)

i od teraz:
System.Runtime.InteropServices.COMException (0x800736B1): This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from 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)

Do tej pory próbowałem:
  • Ponowne uruchamianie usług IIS
  • Uruchom ponownie serwer
  • Zainstaluj ponownie .NET Framework
  • kopiowanie EnterpriseServices.dll i EnterpriseServices.Wrapper.dll do katalogu html/bin
  • Uruchamianie aspnet_regiis -i [list][*]daje błąd: Błąd podczas tworzenia kontekstu aktywacji dla C: \ WINDOWS \ assembly \ GAC_32 \ System.Data \ 2.0.0.0__b77a5c561934e089 \ System.Data.dll. Komunikat pomocy dotyczący błędu: Odmowa dostępu.

[/*]
[/list]
Więc trochę utknąłem. Jakieś pomysły?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Problem w tym, że uprawnienia w GAC zostały w jakiś sposób naruszone. Naprawić:
  • anuluj rejestrację
               shfusion.dll         
    z regsvr32, abyś mógł uzyskać dostęp
               c:\windows\assembly         
  • zresetuj uprawnienia, aby usługa sieciowa mogła uzyskać dostęp do GAC
  • zarejestruj się ponownie
               shfusion.dll         

Dla wygody również biegnij
         aspnet_regiis.exe -ga "UserAccount"
naprawić uprawnienia metabazy usług IIS.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się