IIS 7: Identität "IIS APPPOOL\DefaultAppPool' keine ausreichende Berechtigung zum Zugriff auf das temp-Verzeichnis
Ich habe seltsame und unlösbares problem mit meinem IIS 7.0 auf Windows7.
Ich versuche ausführen, - Seite auf meinem lokalen server getestet und bekomme folgenden Fehler:
Access to the temp directory is denied.
Identity 'IIS APPPOOL\DefaultAppPool' under
which XmlSerializer is running does not have sufficient permission
to access the temp directory.
CodeDom will use the user account the process is using to do the compilation,
so if the user doesn't have access to system temp directory,
you will not be able to compile.
Use Path.GetTempPath() API to find out the temp directory location.
Ich habe mehrere Becken, aber nur einer von Ihnen richtig funktioniert. Es ist Classic .NET AppPool. Läuft auf anderen Websites, die ich bekomme Fehler, die früher. Die meisten intresting ist, ich cann 'T finden alle differents zwischen pools" Konfiguration mittels Application Pools des IIS-MANAGERS. Vielleicht bin ich etwas fehlt?
Ich habe versucht, ändern Sie die Zugriffsrechte für die Windows\Temp
, C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
, und local settings' temporary folder
, aber meine Aktionen haben keine Auswirkungen haben.
So, hoffe auf Eure Hilfe und ein paar Tipps.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hast, Ruf Sie an der
Path.GetTempPath()
Methode (Sie können diese Methode aufrufen, aus jedem Programm, nicht notwendig von Ihrer website)?Müssen Sie vollen Zugriff auf diesen Weg für Ihr Konto.
Außerdem fand ich in diesem forum Thema:
Eine andere option zu prüfen...der DefaultAppPool schafft seine eigenen Benutzer-account und die Ordner unter dem "c:\Users" Verzeichnis, wenn der pool erstellt und zuerst ausgeführt. Es ist tatsächlich ein virtuelles Benutzerkonto und sollte den Namen für den Anwendungspool ein, oder "DefaultAppPool" ein. Es verwendet das temporäre Benutzerkonto, die zum ausführen der pool. In manchen Fällen sind die Menschen nicht sehen, diese Ordner, sondern einen Ordner TEMP, wenn der IIs-web-site zugegriffen wird und mit dem Standard-pool. Dieser Benutzer-Ordner verwendet wird, indem Sie den pool und ASP.NET für die Zwischenspeicherung und schreiben von Datei-Ressourcen und andere Dinge, die von IIs verwendet, ASP.NET und dieses virtuelle Konto.
Wenn Sie stattdessen eine "TEMP" - Ordner in den Ordner "Benutzer" haben Sie eine beschädigte Anwendung pool-Konto im IIs und in der Registry. Der pool ist das erstellen der TEMP-Ordner als backup für dieses virtuelles Konto, die möglicherweise nicht über die richtigen Sicherheits-setup. Ich hatte genau dieses Szenario.
Zu beheben, gehen Sie in der registry unter:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Sehen Sie, wenn Sie eine SID-user-Konto mit ".bak" - Endung für eine DefaultAppPool Benutzerkonto. Wenn ja, löschen Sie es und starten Sie Ihren PC neu. Testen Sie Ihre website erneut, so dass Sie sicher, dass Sie die eigentlich setup zu verwenden DefaultAppPool. Es sollte nun neu die "DefaultAppPool" - Ordner in Benutzer, erstellen Sie den registry-Eintrag für DefaultAppPool Benutzer, und dein Fehler sollte Weg gehen. also kein TEMP Ordner.
Nachdem ich dies getan habe, alle meine stack-überlauf-Fehler ging Weg in Visual Studio für meine web-Anwendung und alle neu starten und endgültige Absturz der Applikation Pool im IIs.