UnauthorizedAccessException in ASP.NET-Anwendung nach Änderung der Anwendungspoolidentität

UnauthorizedAccessException in ASP.NET-Anwendung nach Änderung der Anwendungspoolidentität

Ich habe eine SharePoint-Instanz (MOSS 2007), die unter Windows Server 2003 und IIS 6 ausgeführt wird. In IIS habe ich eine ASP.NET-Anwendung über ein virtuelles Verzeichnis unter der SharePoint-Website eingerichtet. Der Zugriff auf SharePoint erfolgt über die URLhttp://Firmenportalund der Zugriff auf die ASP.NET-Anwendung erfolgt über die URLhttp://companyportal/apps/Default.aspxBeachten Sie, dass für SharePoint und die ASP.NET-Anwendung derselbe Anwendungspool verwendet wird.

Vor Kurzem habe ich beschlossen, die ASP.NET-Anwendung in einem eigenen Anwendungspool zu isolieren, sodass sie vollständig unabhängig von SharePoint ist und somit keine Probleme für das Portal darstellt, sollte sie aus irgendeinem Grund beginnen, übermäßig viele Ressourcen zu verbrauchen.

Also habe ich einen neuen Anwendungspool für die ASP.NET-Anwendung erstellt. Ich habe ein neues Dienstkonto erstellt, das als Identität für diesen neuen Anwendungspool dient, und dabei die Schritte in diesem Schritt befolgt.MSDN-Blogbeitrag. Ich habe den neuen Anwendungspool neu gestartet und zur ASP.NET-Anwendung gesurft. Das Verhalten, das ich beobachtet habe, ist:

  • Die Anwendung lädt extrem langsam.
  • Schließlich wird die Anwendungsseite angezeigt, was bedeutet, dass alle Datenbankaufrufe usw. erfolgreich waren.
  • Schließlich sehe ich einen System.UnauthorizedAccessExceptionFehler. Da Visual Studio 2008 auf demselben Server läuft, werde ich aufgefordert, den Visual Studio Just-In-Time Debugger zu öffnen, obwohl dies keine nützlichen Informationen liefert.
  • In der Ereignisanzeige werden mir folgende Fehler angezeigt:

    • Quelle: ASP.NET 2.0.50727.0 (Ereignis-ID 1334)

      Es ist eine unbehandelte Ausnahme aufgetreten und der Prozess wurde beendet.

      Anwendungs-ID: /LM/W3SVC/1/Root/apps

      Prozess-ID: 3028

      Ausnahme: System.UnauthorizedAccessException

      Meldung: Der Zugriff auf den Port wurde verweigert.

    • Quelle: .NET Runtime 2.0-Fehler(Ereignis-ID 5000)

      Ereignistyp clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d6968e, P4 System, P5 2.0.0.0, P6 504057aa, P7 3bf9, P8 7a, P9 System.UnautorisierterZugriff, P10 NIL.

Nach weiterer Suche auf Stack Overflow habe ich diesen Schritt ausgeführt:

aspnet_regiis.exe -GA Domäne\Benutzername

und dies hat dazu beigetragen, dass die Anwendung schneller geladen wurde, aber die oben genannten Fehler werden weiterhin in der Ereignisanzeige angezeigt.

Wenn ich dasselbe Dienstkonto verwende, mit dem der SharePoint-Anwendungspool ausgeführt wird, treten diese Probleme nicht auf, aber sobald ich das neue Dienstkonto verwende, treten die Probleme auf. Ich glaube also, dass es etwas mit der Art und Weise zu tun hat, wie ich das Dienstkonto eingerichtet habe, bin mir aber nicht sicher, was ich übersehe!

Antwort1

Haben Sie Ihren benutzerdefinierten Benutzer zur IIS_WPG-Gruppe hinzugefügt? Das ist eine Voraussetzung in IIS6. Durch Ausführen von aspnet_regiis -GA werden einige, aber nicht alle Berechtigungen erteilt, die von IIS_WPG verwaltet werden.

Stellen Sie außerdem sicher, dass Ihr benutzerdefiniertes Konto zumindest über Leseberechtigungen für die Festplatte verfügt, obwohl dies nicht die spezifische Ursache der von Ihnen genannten Fehler ist.

verwandte Informationen