ASP.NET 2.0-Anwendung, die auf IIS 5, was Fehler (aspnet_wp.exe (PID:XXXX) wurde unerwartet beendet.)

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

Frage

Nachdem hosting ASP.NET 2.0 web-Anwendung auf einem windows 2000 server(IIS 5).Ich war nicht in der Lage zum durchsuchen der Website.

Die folgende Fehlermeldung wurde angezeigt, auf den browser und das drei Ereignis-Log-Einträge Hinzugefügt wurden...

Fehlermeldung im Browser

Server Application Unavailable Die Webanwendung auf diesem Webserver ist derzeit nicht verfügbar.Bitte klicken Sie auf den "Refresh" Knopf in Ihrem browser um den Vorgang zu wiederholen.

Ereignis-Log-Einträge

Event-Typ:Fehler
Quelle:ASP.NET 2.0.50727.0
Event-Kategorie:None
Ereignis-ID:1000
Datum:10/24/2008
Zeit:3:45:26 PM
Benutzer:N/A
Computer:XXXXX
Beschreibung:aspnet_wp.exe (PID:XXXX) wurde unerwartet beendet.

Event-Typ:Fehler
Quelle:ASP.NET 2.0.50727.0
Event-Kategorie:None
Ereignis-ID:1088
Datum:10/24/2008
Zeit:3:45:26 PM
Benutzer:N/A
Computer:XXXXX
Beschreibung:Fehler beim ausführen der Anforderung, weil die Anwendungsdomäne nicht erstellt werden konnte.Fehler:0 x 80070005 Zugriff verweigert.

Event-Typ:Warnung
Quelle:ASP.NET 2.0.50727.0
Event-Kategorie:None
Ereignis-ID:1073
Datum:10/24/2008
Zeit:3:45:26 PM
Benutzer:N/A
Computer:WEBDEV
Beschreibung:Fehler beim initialisieren der AppDomain:/LM/W3SVC/1/Root/WebApplicationName
Ausnahme:System.IO.FileLoadException
Nachricht:Konnte nicht geladen, Datei oder assembly 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' oder eine seiner Abhängigkeiten.Zugriff verweigert.StackTrace:System.Reflexion.Montage.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
System.Reflexion.Montage.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
System.Reflexion.Montage.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
System.Aktivator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder Binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
System.Aktivator.CreateInstance(String assemblyName, String typeName)
System.AppDomain.CreateInstance(String assemblyName, String typeName)
System.AppDomain.CreateInstance(String assemblyName, String typeName)
System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentandreporterrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

Irgendwelche Ideen,...

** Edit **

Und Warum System.IO.FileLoadException geworfen wird, für den Zugriff auf System.Web assembly ?

War es hilfreich?

Lösung

Ich entdeckte, dass, wenn der web-site-Ordner wurde auf dem server kopiert erbte Sie den Sicherheits-Berechtigungen des übergeordneten Ordners, die hatten nur die Erlaubnis für den Administrator, Administratoren und System-Konten.

Ich fügte hinzu

  • IUSER_MACHINENAME (Internet Guest Account)
  • ASPNET (ASP.NET Maschine-Konto)

Mit Lesen & Ausführen, Ordnerinhalt und Lesen Berechtigungen.

Auch wenn das problem behoben ist, ich habe noch einige Fragen

Es ist klar, aus der Dritten Eintrag im Ereignisprotokoll, die ApplicationManager nicht erstellen Sie die HostingEnvironment, die in das System.Web assembly.

Seit FileLoadException ist geworfen-System.Web scheint es, wie die ASP.NET worker-Prozess nicht haben Zugang zu der GAC-Ordner.

Warum ist die FileLoadException geworfen für den Zugriff auf System.Web?

Andere Tipps

Von den blicken von ihm, Sie haben eine falsche Berechtigung für Ihre ASP.NET installation.In der Regel die beste Wette, es einfach zu deinstallieren und neu zu installieren, die ASP.NET Teil.Sie können dies leicht tun, indem Sie die folgenden.

  1. Öffnen Sie Eingabeaufforderung aus, um C:\windows\microsoft.net\framework\v2.0.50727
  2. führen Sie den folgenden Befehl ein:aspnet_regiis.exe -u
  3. führen Sie den folgenden Befehl ein:aspnet_regiis.exe -i

Das deinstallieren ASP.NET und re-installieren, sollten dann stellen Sie die richtigen Berechtigungen für das Konto.

Dieser Fehler bedeutet, dass Ihr code eine Ausnahme geworfen, die entweder abgestürzt IIS, oder gezwungen, es zu schließen.Gemeinsame Ausnahmen, die dazu führen, diese sind OutOfMemoryException und StackOverflowException.

Sie bekommen eine FileLoadException, aber es könnte eine zugrunde liegende OutOfMemoryException oder ähnliches, das ist eigentlich die Ursache, dass.Ohne zu wissen, was Sie versuchen zu laden, und der code, der drin ist, ist es unmöglich zu sagen, was eigentlich die Ursache Ihres Problems.

Das erste, was ich tun würde, um die Regel auf ein problem mit dem laden der assembly, obwohl, ist, zu versuchen und zu reflektieren, über Sie in einer Testumgebung, und sehen, ob das gleiche problem Auftritt.Wenn dem so ist, dann ist das problem mit der DLL, die Sie versuchen zu laden, nicht IIS.

Ich hatte das gleiche problem und es ging nicht Weg mit aspnet_regiis-mit -u und -i und viele andere vorgeschlagen hier.Aber nachdem ich mich gereinigt “%windir%\Microsoft.NET\Framework\v2.0.50727 emporäre ASP.NET Dateien" - Ordner und gab diese Ordner lese-schreib-Berechtigungen für Benutzer von identity impersonate Abschnitt im web.Konfiguration, problem verschwunden.Es war nicht ausreichend, um die lokalen ASPNET-Benutzer diese Rechte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top