2008-10-14 10 views
7

Ich versuche, eine ASP.NET 2.0-Anwendung auf einem XP-Computer auszuführen. Soweit ich weiß, ist alles richtig konfiguriert. Allerdings erhalte ich die folgende Meldung:Warum fällt ASP.NET aufgrund von Berechtigungen für GAC fehl?

Server Application Unavailable

Und zwei Ereignisse werden in dem Anwendungsereignis jedes Mal einloggen:

aspnet_wp.exe (PID: 3352) stopped unexpectedly.

Failed to execute the request because the ASP.NET process identity does not have read permissions to the global assembly cache. Error: 0x80070005 Access is denied.

Zuvor ASP.NET-Anwendungen gearbeitet an dieser Maschine in Ordnung.

Ich habe die folgenden Schritte versucht, ohne Erfolg:

  • I Leseberechtigungen auf der Website Home-Verzeichnis zu dem ASPNET
  • Konto gewährt haben
  • ich ASP.NET 2.0 mit aspnet_regiis neu installiert habe -i
  • ich habe Berechtigungen für das ASPNET gewährt Konto mit aspnet_regiis -ga < meines Maschinennamen > \ ASPNET
  • I Leseberechtigungen zu dem GAC zu dem ASPNET gewährt habe Konto mit CACLS% windir% \ assembly/e/t/p < mein Computername > \ ASPNET: R
  • ich die ASP.NET-Version für die Site 2.0 innerhalb IIS

gesetzt habe Ich bin mir nicht sicher, was ich tun kann!


Verwendung von Process Monitor führte mich direkt auf das Problem. Vielen Dank an Mun für den Tipp.

Es war ein ziemlich obskures Problem: Ich hatte zuvor den Assembly Binding Log Viewer (fuslogvw.exe) verwendet und legte es so fest, dass alle Bindungen mit der benutzerdefinierten Pfadoption protokolliert wurden. Das ASPNET-Konto hatte jedoch keine Berechtigungen für diesen benutzerdefinierten Pfad. Wenn Sie also den Standardpfad verwenden, wurde das Problem behoben. Das Gewähren von Lese-/Schreibberechtigungen für diesen benutzerdefinierten Pfad zum ASPNET-Konto funktioniert ebenso wie das Deaktivieren der Bindungsprotokollierung.

Antwort

2

Sie auch Process Monitor nützlich sein könnten für Fehlerbehebung für diese Art von Problemen. Wenn Sie einen Filter einrichten, der alle Aktivitäten anzeigt, die aspnet_wp.exe enthalten, sollte er Ihnen anzeigen, auf welche Dateien er zugreifen möchte. Dadurch können Sie die Berechtigungen entsprechend aktualisieren.

0

Früher hatten wir dieses Problem mit ASP.NET, da Visual Studio seine temporäre Kopie der Assemblys erstellte. Der Indizierungsdienst würde dann nach Viren suchen und dies würde gelegentlich eine Meldung "access denied" verursachen versuchen, eine freigegebene Datei zu öffnen. Wenn der Indizierungsdienst angewiesen wurde, das Verzeichnis für temporäre Baugruppen nicht zu indizieren, wurde das Problem gelöst.

1

Ich weiß, es ist zu spät, um dies zu beantworten. Ich hatte das gleiche Problem heute.Ich lief die unten in der Eingabeaufforderung und das Problem behoben

aspnet_regiis -ga machinename\ASPNET 
0

dies das Problem für mich gelöst, dachte, ich würde Aktie:

Wenn dies für IIS 5.1 (grundsätzlich archaischen Versionen von IIS) Klicken Sie mit der rechten Maustaste auf Ihr virtuelles Verzeichnis (von inetmgr) und gehen Sie zu "Alle Aufgaben"> "Berechtigungsassistent" Wählen Sie die Option "Neue Sicherheitseinstellungen aus einer Vorlage auswählen" und wählen Sie dann Öffentliche Website.

Verwandte Themen