Problem z uprawnieniami do katalogu wirtualnego do ścieżki UNC

13

Mam katalog wirtualny w mojej witrynie (środowisko testowe). Jest to udział UNC, który jest również używany jako publiczny FTP.

Jest skonfigurowany do łączenia się jako konto administratora domeny, a „Ustawienia testowe” mówią, że wszystko działa. Jednak gdy próbuję się z nim połączyć, otrzymuję:

500 - „Nie można rozpocząć monitorowania zmian w \ INTRANET \ FTP \ test \ web.config, ponieważ odmówiono dostępu”

To jest ASP.NET YSOD. Nie jestem pewien, dlaczego ASP.NET w ogóle się angażuje, ponieważ żądam statycznego pliku .jpg.

Próbowałem włączyć śledzenie nieudanych żądań, a to jest konkretny błąd:

  • ModuleName WindowsAuthentication
  • Powiadomienie 2
  • HttpStatus 500
  • HttpReason Błąd wewnętrzny serwera
  • HttpSubStatus 0
  • ErrorCode 0
  • ConfigExceptionInfo
  • Powiadomienie AUTHENTICATE_REQUEST
  • ErrorCode Operacja zakończyła się pomyślnie. (0x0)

Jeśli zmienię „Typ logowania ścieżki fizycznej” z ClearText na sieć. Otrzymuję następujący błąd IIS:

Błąd HTTP 500.19 - Serwer wewnętrzny

Błąd Nie można uzyskać dostępu do żądanej strony, ponieważ powiązane dane konfiguracyjne strony są nieprawidłowe.

Szczegółowe informacje o błędzie

  • Moduł IIS Web Core
  • Powiadomienie BeginRequest
  • Handler Jeszcze nie ustalony
  • Kod błędu 0x80070005
  • Błąd konfiguracji Nie można odczytać pliku konfiguracyjnego z powodu niewystarczających uprawnień
  • Plik konfiguracyjny \\?\UNC\INTRANET\FTP\test\web.config
  • Żądany adres URL http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • Ścieżka fizyczna \\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • Metoda logowania Jeszcze nie ustalono

  • Logowanie użytkownika Jeszcze nie ustalono
  • Katalog dziennika śledzenia nieudanego żądania C:\inetpub\logs\FailedReqLogFiles

Nie generuje to dość dziwnie dziennika żądań - ustawiłem śledzenie nieudanych żądań, aby śledzić błędy z kodami błędów 400-999.

Warto również zauważyć, że jeśli otworzę funkcję konfiguracji z poziomu IIS, zobaczę błąd odmowy dostępu.

Mam dokładnie taką samą konfigurację na moim lokalnym komputerze deweloperskim do tej samej ścieżki UNC i tego samego użytkownika, który działa. Tylko na serwerze testowym tak nie jest.

Co ja robię źle?

Rob Stevenson-Leggett
źródło

Odpowiedzi:

10

Fakt, że jest to aplikacja ASP.net, jest prawdopodobnie właśnie tym problemem. Tożsamość puli aplikacji musi mieć uprawnienia (niekoniecznie tożsamość IIS; domyślnie tożsamością puli aplikacji jest lokalne konto usługi sieciowej). Prawdopodobnie musisz także uruchomić caspol.exe na swoim komputerze IIS.

http://msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.80%29.aspx

http://learn.iis.net/page.aspx/50/aspnet-20-35-shared-hosting-configuration/

%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\\remotefileserver\content$\*" FullTrust
mfinni
źródło
7

Rozwiązałem nasz problem, tworząc pasujące konta zarówno na serwerze sieciowym, jak i na serwerze unc. Następnie zmodyfikowałem pulę aplikacji, aby działała przy użyciu tego pasującego konta, a nie usługi sieciowej. Dało mi to elastyczność synchronizacji hasła na obu serwerach bez wpływu na inne funkcje zależne od usług sieciowych.

Działanie IT
źródło
3
Po spędzeniu 5 godzin i poszukiwaniu rozwiązania, w końcu rozwiązanie IT Action zadziałało dla mnie. Utworzyłem dokładnie tych samych użytkowników na obu komputerach, a następnie ustawiłem pulę aplikacji, aby działała przy użyciu tego konta. Właśnie miałam oszaleć z tego powodu. Wreszcie rozwiązany. Mam nadzieję, że to pomoże wszystkim ma ten sam problem
Ogromny +1. Jestem w tej samej łodzi co @ user249232 - założenie konta lustrzanego na maszynie IIS natychmiast rozwiązało problem po wielu poszukiwaniach. Jednak ustawiam użytkownika poprzez „Połącz jako” w podstawowych ustawieniach witryny, a nie przez zmianę identyfikatora puli aplikacji.
Scruffy
1
Kudos, dla których to rozwiązanie działa, ale jest to dla mnie okropne rozwiązanie, ponieważ nie chcę próbować naśladować konfiguracji nazwy mojej domeny corp w osobistej konfiguracji linux vbox, w której używam innej konwencji nazwy użytkownika. Synchronizacja haseł to dla mnie dodatkowa złożoność, która jest dla mnie przesadna, ponieważ już korzystam z rozdzielonych serwerów (iis na moim hoście i php56 na linuksie, aby uzyskać dostęp dla kompozytora)
Brian Thomas
po spędzeniu 2 dni. To zadziałało dla mnie. Nawet ja spróbowałem tych samych danych uwierzytelniających i to nie działało. Wreszcie działa po przeniesieniu tego zwykłego użytkownika z grupy Administrator
Ketan Kotak
2

Jeśli to udostępnione źródło nie jest aplikacją (np. Folder obrazów), spróbuj skonfigurować katalog wirtualny, aby był ignorowany przez aplikację root, która zawiera katalog wirtualny (w moim przypadku zakończyłem to, zmieniając typ puli aplikacji root na Klasyczny zamiast trybu zintegrowanego). Ale jeśli we wspólnym punkcie znajduje się aplikacja, możesz postępować zgodnie z instrukcją @mfinni.

Emre Guldogan
źródło
1

Możesz sprawdzić, czy konto, na którym działają IIS, ma odpowiednie / potrzebne prawa do kłopotliwego UNC.

użytkownik48838
źródło
3
Gdyby to nie była aplikacja ASP.net, miałbyś pieniądze. Ponieważ jest uruchomiony w puli aplikacji, dostęp do niego wymaga tożsamości aplikacji, a nie konta użytkownika IIS.
mfinni
1

Miałem ten sam problem na IIS 7.5 i znalazłem rozwiązanie:

  1. Utwórz lokalnego użytkownika na serwerze z udziałem
  2. Utwórz udział sieciowy, nadając użytkownikowi utworzonemu w kroku 1 pożądane uprawnienia. System Windows skonfiguruje uprawnienia dla określonego użytkownika
  3. Przejdź do katalogu wirtualnego w IIS i otwórz „ustawienia zaawansowane”
  4. Wprowadź adres URL w ścieżce fizycznej dla udziału sieciowego jako \\<servername>\<sharename>
  5. kliknij Poświadczenia ścieżki fizycznej; dodaj poświadczenia użytkownika utworzone w kroku 1
Charles
źródło
0

Właśnie miałem ten sam problem z serwerem internetowym niebędącym domeną uzyskującym dostęp do niektórych zasobów domeny przy użyciu konta domeny. Występowały dziwne zachowania („poświadczenia testowe” kończyły się niepowodzeniem, nawet jeśli wiedzieliśmy, że poświadczenia są prawidłowe, widzieliśmy foldery i pliki w widoku zawartości, ale nie mogliśmy ich „przeglądać”). Rozwiązaniem było utworzenie lokalnego użytkownika na komputerze o tej samej nazwie co użytkownik domeny.

Myślę, że tak by się stało, gdyby serwer WWW był członkiem domeny, a użytkownik lokalny musiał uzyskać dostęp do niektórych zasobów lokalnych (config?) W celu zmapowania wirtualnego.

Mam nadzieję, że komuś pomoże.

jprmsn
źródło