Applicazione ASP.NET 2.0 su IIS 5 con conseguente errore (aspnet_wp.exe (PID: XXXX) interrotto in modo imprevisto).

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

Domanda

Dopo aver ospitato un'applicazione Web ASP.NET 2.0 su un server Windows 2000 (IIS 5). Non sono riuscito a navigare nel sito Web.

Sul browser è stato visualizzato il seguente messaggio di errore e sono state aggiunte tre voci del registro eventi ...

Messaggio di errore sul browser

  

Applicazione server non disponibile L'applicazione Web a cui si sta tentando di accedere su questo server Web non è attualmente disponibile. Premi il pulsante " Aggiorna " nel browser Web per ritentare la richiesta.

Voci del registro eventi

  

Tipo di evento: errore
  Origine evento: ASP.NET 2.0.50727.0
  Categoria evento: nessuna
  ID evento: 1000
  Data: 24/10/2008
  Tempo: 15:45:26
  Utente: N / A
  Computer: XXXXX
  Descrizione: aspnet_wp.exe (PID: XXXX) si è arrestato in modo imprevisto.

     

Tipo di evento: errore
  Origine evento: ASP.NET 2.0.50727.0
  Categoria evento: nessuna
  ID evento: 1088
  Data: 24/10/2008
  Tempo: 15:45:26
  Utente: N / A
  Computer: XXXXX
  Descrizione: impossibile eseguire la richiesta perché non è stato possibile creare il dominio app. Errore: 0x80070005 Accesso negato.

     

Tipo di evento: avviso
  Origine evento: ASP.NET 2.0.50727.0
  Categoria evento: nessuna
  ID evento: 1073
  Data: 24/10/2008
  Tempo: 15:45:26
  Utente: N / A
  Computer: WEBDEV
  Descrizione: Impossibile inizializzare AppDomain: / LM / W3SVC / 1 / Root / WebApplicationName
  Eccezione: System.IO.FileLoadException
  Messaggio: Impossibile caricare il file o l'assembly 'System.Web, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o una delle sue dipendenze. L'accesso è negato.   StackTrace: at System.Reflection.Assembly.nLoad (AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark & ??amp; stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
     presso 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 typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] activAttributes, Evidence securityInfo, StackCrawlMark & ??amp; stackMark)
     at System.Activator.CreateInstance (String assemblyName, String typeName)
     at System.AppDomain.CreateInstance (String assemblyName, String typeName)
     at System.AppDomain.CreateInstance (String assemblyName, String typeName)
     at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment (App String, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
     at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors (String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

Qualsiasi idea ...

** Modifica **

E perché System.IO.FileLoadException viene lanciato per l'accesso all'assemblaggio System.Web?

È stato utile?

Soluzione

Ho scoperto che quando la cartella del sito Web è stata copiata sul server ha ereditato le autorizzazioni di sicurezza della cartella principale che aveva solo l'autorizzazione per Amministratore, Amministratori e amp; Account di sistema.

Ho aggiunto

  • IUSER_MACHINENAME (account ospite Internet)
  • ASPNET (account macchina ASP.NET)

Con Leggi & amp; Esegui le autorizzazioni , Elenca contenuti cartella e Leggi .

Anche se il problema è stato risolto, ho ancora alcune domande

Dalla terza voce del registro eventi risulta chiaramente che ApplicationManager non riesce a creare l'hostingambiente che si trova nell'assemblaggio System.Web.

Poiché FileLoadException viene generato per System.Web sembra che il processo di lavoro ASP.NET non abbia accesso alla cartella GAC.

Perché FileLoadException viene lanciato per l'accesso a System.Web?

Altri suggerimenti

A quanto pare, hai impostato un'autorizzazione errata per l'installazione di ASP.NET. Tipicamente la soluzione migliore è semplicemente disinstallare e reinstallare la parte ASP.NET. Puoi farlo facilmente nel modo seguente.

  1. Apri il prompt dei comandi in C: \ windows \ microsoft.net \ framework \ v2.0.50727
  2. esegui il seguente comando: aspnet_regiis.exe -u
  3. esegui il seguente comando: aspnet_regiis.exe -i

Ciò disinstalla ASP.NET e lo reinstalla, che dovrebbe quindi stabilire le autorizzazioni appropriate per l'account.

Questo errore indica che il codice ha generato un'eccezione che ha causato l'arresto anomalo di IIS o l'arresto forzato. Eccezioni comuni che causano questo sono OutOfMemoryException e StackOverflowException.

Stai ricevendo FileLoadException, ma potrebbe esserci una OutOfMemoryException o simile che in realtà è la causa principale di ciò. Senza sapere cosa stai cercando di caricare e il codice che è al suo interno, è impossibile dire cosa sta effettivamente causando il tuo problema.

La prima cosa che vorrei fare per escludere un problema con il gruppo di caricamento, tuttavia, è provare a riflettere su di esso in un cablaggio di prova e vedere se si verifica lo stesso problema. In tal caso, il problema riguarda la DLL che stai tentando di caricare, non IIS.

Ho avuto lo stesso problema e non è andato via con aspnet_regiis con -u e -i e molti altri hanno suggerito qui . Ma dopo aver pulito & # 8220;% windir% \ Microsoft.NET \ Framework \ v2.0.50727 \ File ASP.NET temporanei & # 8221; cartella e ha dato a questa cartella autorizzazioni di lettura / scrittura per l'utente dalla sezione di identità impersonate in web.config, il problema è scomparso. Non era sufficiente concedere tali diritti all'utente locale ASPNET.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top