Zbudowałem witrynę ASP.NET MVC 2, którą hostuję z serwerem Rackspace Cloud Server przy użyciu IIS 7.0.Jak skonfigurować program SQL Server/IIS 7.0, aby umożliwić witrynie ASP.NET MVC dostęp do bazy danych?
Kiedy próbuję przetestować stronę pod localhost z IIS 7.0 na serwerze, otrzymuję stronę błędu. Ten pochodzi z dzienników SQL (używam SQL Web Edition):
Error: 18456, Severity: 14, State: 11
Login failed for user 'IIS APPPOOL\DefaultAppPool'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: <local machine>]
Moja strona działa dobrze na moim domowym komputerze, więc problem jest coś zrobić z łączenia się z bazą danych.
Po zbadaniu kodu komunikatu o błędzie sugeruje, że mam prawidłowy login bazy danych, ale dostęp do serwera nie powiódł się. Zrobiłem stos czytania wokół to na różnych forach i oto co próbowałem, z których żaden nie rozwiązał problemu (w tym stackoverflow/ServerFault.)
Skonfiguruj nowe logowanie przy użyciu uwierzytelniania SQL Server. Stworzyłem nowy login w SQL i podałem poprawne prawa dostępu do mojego DB. Użyłem następującego ciągu połączenia w konfiguracji sieci:
Źródło danych = mój serwer, katalog początkowy = myDB, identyfikator użytkownika = moja nazwa użytkownika, hasło = moje hasło;
Utwórz nowe logowanie jako
IIS APPPOOL\DefaultAppPool
. Stworzyłem nowy login w SQL z poprawnymi prawami dostępu i używanym uwierzytelnianiem Windows. Ciąg połączenia wygląda następująco:Serwer = mój serwer; Baza danych = mojaDanaBase; Trusted_Connection = Prawda;
Użyj istniejącego logowania sieciowego
NT AUTHORITY\NETWORK SERVICE
. Zmapowałem tego użytkownika do mojej bazy danych z poprawnymi prawami dostępu. Ciąg połączenia wygląda następująco:Serwer = mój serwer; Baza danych = mojaDanaBase; Trusted_Connection = Prawda;
Wygląda na to, że są głównymi opcjami, ponieważ czytam materiały online. Wreszcie tutaj jak kilka innych rzeczy, które mogą być pomocne:
- Ustawienie SQL Uruchom jako administrator nie rozwiązuje problemu
- Wyłączanie
UAC
nie pomogło - Moje puli aplikacji używa ApplicationPoolIdentity (najlepsze ze względów bezpieczeństwa)
W skrócie, moja strona nie chce się uruchomić, ponieważ nie może uzyskać obiekt z DB tak wyrzuca błąd. Problem polega na tym, że prawa dostępu do serwera nie są ustawione poprawnie. Nie mogę się dowiedzieć, jaka konfiguracja SQL login/połączenia ciąg/prawa dostępu do domeny potrzebuję.
To mnie dręczyło przez 3 tygodnie - czy możesz poświęcić 5 minut, aby mi pomóc?
Czy możesz zamieścić bieżący ciąg połączenia? Zakładam, że łączysz się z Integrated Security, dlatego AppPoolIdentity służy do łączenia się z SQL Server. Należy również wspomnieć, czy serwery WWW i sql działają w konfiguracji usługi Active Directory. –
Używanie: 'Source = SetsOfSix; Początkowy katalog = SetsOfSix; Zintegrowane zabezpieczenia = SSPI; '. Pozwól mi przejść sprawdzić pytanie w sprawie konfiguracji aktywnego katalogu ... –
Na IIS 'Active Directory Domain Services' nie jest zainstalowany. Jak sprawdzić, czy serwery WWW i sql działają w konfiguracji Active Directoty? –