Czy można skonfigurować lokalizację folderu „Tymczasowe pliki ASP.NET” w IIS?

25

W IIS7.5 po przełączeniu tożsamości puli na użytkownika domeny otrzymałem ten błąd:

„Bieżąca tożsamość (domena \ nazwa użytkownika) nie ma dostępu do zapisu w„ C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files ”.”

Mógłbym przyznać prawa użytkownika do tego konkretnego katalogu, ale zastanawiam się, czy istnieje lepsze rozwiązanie. Idealnie chciałbym skonfigurować ten katalog „Tymczasowe pliki ASP.NET” do przechowywania w innej lokalizacji.

PanJanek
źródło
Otrzymałem również komunikat o błędzie podczas przypadkowej próby uruchomienia aplikacji usługi sieciowej .Net 3.5 w (domyślnej) puli aplikacji .Net 2.0; przejście do puli aplikacji .Net 4.0 rozwiązało to.
Tor Iver Wilhelmsen

Odpowiedzi:

23

Możesz zmienić domyślną lokalizację dla każdej witryny / aplikacji, edytując sekcję Konfiguracja Web.configpliku.

<system.web>
  <compilation tempDirectory="D:\MyTempFiles" />
</system.web>

Aplikacja zostanie ponownie skompilowana, a pliki zostaną zapisane w nowej lokalizacji, po czym można bezpiecznie usunąć stare foldery. Pamiętaj, że nazwy folderów pozostaną takie same; np. jeśli stara lokalizacja to:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\9878g103\e67805p7

wtedy nowy będzie:

D:\MyTempFiles\root\9878g103\e67805p7
ShaneH
źródło
7
Wielkie dzięki ShaneH za odpowiedź. Wspomniana zmiana nie musi dotyczyć poszczególnych witryn / aplikacji. Możesz zastosować tę zmianę na podstawie wersji frameworka, zmieniając plik web.config frameworka, na przykład: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config. Robiąc to, wpływasz na wszystkie witryny, które są kierowane na tę wersję frameworka.
Silviu,
4
Należy zauważyć, że należy do sekcji system.web web.config
CoderTao
@Silviu Tylko ostrzeżenie: jeśli masz dużo stron na serwerze, wykonanie kompilacji może potrwać kilka minut
splattne
Dodałem tę sekcję do machine.config. To działa.
Evgeni Nabokov