2013-06-17 8 views
5

Mam witrynę internetową z katalogiem wirtualnym zawierającym pliki PDF. Użytkownicy uzyskują dostęp do plików PDF za pomocą adresu URL, na przykład http://myApp.com/PDFs/12345678.pdf
Pliki PDF to katalog wirtualny odwzorowany na \\ actualPhysicalServerName \ PDFsDirectory \ To działa.Usługi IIS zapominają uprawnień katalogu wirtualnego - Wystąpił błąd podczas ładowania pliku konfiguracyjnego: Nie można rozpocząć monitorowania zmian

Rutynowo ponownie wdrażam aplikację. Po ponownym wdrożeniu aplikacji i ponownym uruchomieniu witryny użytkownicy nie będą mogli uzyskać dostępu do katalogu wirtualnego do momentu ponownego uruchomienia usług IIS.

Uzyskanie dostępu do powyższego adresu URL powoduje wystąpienie następującego błędu: - Wystąpił błąd podczas ładowania pliku konfiguracyjnego: Nie można rozpocząć monitorowania zmian w \\ actualPhysicalServerName \ PDFsDirectory \ web.config, ponieważ dostęp jest zabroniony.
w System.Web.FileChangesMonitor.FindDirectoryMonitor (string dir, logicznej addIfNotFound, logiczna throwOnError)
w System.Web.FileChangesMonitor.StartMonitoringFile (alias String FileChangeEventHandler zwrotna)
w System.Web.Configuration.WebConfigurationHost.StartMonitoringStreamForChanges (String streamName, StreamChangeCallback callback)
na System.Configuration.BaseConfigurationRecord.MonitorStream (String configKey, String configSource, streamName String)
na System.Configuration.BaseConfigurationRecord.InitConfigFromFile()

Ponowne uruchomienie puli aplikacji nie pomaga. Muszę zrestartować IIS. Po ponownym uruchomieniu usług IIS można uzyskać dostęp do katalogu wirtualnego zgodnie z oczekiwaniami.

Czy to oczekiwane zachowanie? Czy mam błędnie skonfigurować moje katalogi wirtualne?

Używam serwerów IIS 7.5, Windows 7 i .NET 4.5.

Odpowiedz

7

Dla wszystkich sfrustrowanych tym samym problemem - gdy nie znalazłem sedna problemu, odkryłem, że ten problem był związany z Tożsamością Puli Aplikacji, na której działa strona.

W moim przypadku rozwiązaniem była zmiana tożsamości puli aplikacji z wbudowanego konta ApplicationPoolIdentity na konto niestandardowe, które jest administratorem wszystkich obsługiwanych maszyn.

Aby to zrobić

  • prawym przyciskiem myszy na puli aplikacji w IIS, wybrać Właściwości zaawansowane.
  • W ProcessModel-> Tożsamość, wybierz Tożsamość. Wybierz konto niestandardowe (konto wbudowane, tożsamość puli aplikacji jest domyślną usługą IIS 7.5)
  • Przełącz się na konto domeny niestandardowej, czyli administratora tego komputera, a także na komputer, na którym hostowany jest katalog wirtualny.
    • Uruchom ponownie pulę aplikacji.
12

I rozwiązał ten problem w ten sposób:

  1. utworzono nowy basen z zarządzanym kodem "No" i ustawienia "Classic".
  2. Budynek wirtualny katalog do wniosku, łączący się z konta użytkownika z uprawnieniami na akcję
  3. mogą korzystać aplikacja nowy basen
1

miałem wirtualnego katalogu skierowaną do obrazów na udziale UNC. Wszystko działało dobrze, dopóki nie zaktualizowaliśmy aplikacji nadrzędnej do .NET 4.5.

Musieliśmy przekonwertować VirDir na Virtual Application z 4.0 Integrated Application Pool.

+0

Zastanawiam się, dlaczego to "przestało działać", dopóki nie zobaczyłem klucza "zaktualizowana aplikacja nadrzędna do .NET 4.5". – Jim