Mam mały skrypt testowy ASP.NET, który otwiera połączenie z bazą danych SQL Server na innym komputerze w domenie. Nie działa we wszystkich przypadkach.
Ustawiać:
IIS 7.5 pod W2K8R2 próbuje połączyć się ze zdalną instancją SQL Server 2008 R2. Wszystkie maszyny są w tej samej domenie.
Korzystając z ApplicationPoolIdentity dla witryny sieci Web, nie można połączyć się z serwerem SQL Server, wykonując następujące czynności:
Logowanie nie powiodło się dla użytkownika „NT AUTHORITY \ ANONYMOUS LOGON”. Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania internetowego. Przejrzyj dane śledzenia stosu, aby uzyskać więcej informacji o błędzie i jego źródle w kodzie.
Szczegóły wyjątku: System.Data.SqlClient.SqlException: Logowanie nie powiodło się dla użytkownika „NT AUTHORITY \ ANONYMOUS LOGON”.
Jeśli jednak zmienię tożsamość modelu procesu na USŁUGĘ SIECIOWĄ lub moje konto domeny, połączenie z bazą danych zakończy się powodzeniem.
Udzieliłem dostępu \ $ w SQL Server.
Nie wykonuję żadnego uwierzytelnienia na stronie internetowej, to tylko prosty skrypt, aby otworzyć połączenie z bazą danych, aby upewnić się, że działa.
Mam włączone Anonimowe Uwierzytelnianie i skonfigurowałem używanie tożsamości puli aplikacji.
Jak sprawić, żeby to działało? Dlaczego ApplicationPoolIdentity próbuje użyć ANONIMOWEGO LOGOWANIA? Jeszcze lepiej, jak sprawić, by przestała korzystać z Anonimowego logowania?