Mam zainstalowany SQL Server Express 2008 na jednej z moich maszyn i próbuję ustanowić zdalne połączenie ... kiedy używam MS SQL Server Management Studio mogę zalogować się do baza danych bez żadnych problemów (z tym samym mandatów), ale gdy próbuję utworzyć ciąg połączenia w moim C# aplikacji otrzymuję wyjątek:C# 2008 SQL Server Express Connection String
związanych z siecią lub specyficzne dla instancji wystąpił błąd podczas nawiązywania połączenie z serwerem SQL. Serwer nie został znaleziony lub nie był dostępny. Sprawdź, czy nazwa instancji jest poprawna i czy i że serwer SQL jest skonfigurowany do zezwalania na zdalne połączenia .
Oto co mój ciąg połączenia wygląda (informacja prywatna ulega zmianie):
"Data Source="MACHINENAME\\SQLEXPRESS";User ID="Admin";Password="the_password";Initial Catalog="MyDatabase";Integrated Security=True;Connect Timeout=120");
Jak powiedziałem, mogę się zalogować przy użyciu Management Studio z tymi samymi ustawieniami: sam identyfikator użytkownika , hasło i nazwę źródła danych, ale nie powiedzie się, gdy spróbuję otworzyć połączenie z powyższym ciągiem połączenia.
Uwaga:
I umożliwiły zdalną łączność na serwerze wyłączone połączenia firewall włączony protokół TCP/IP do serwera, włączył SQL Browser.
Ciąg połączenia działa poprawnie, gdy jestem na tym samym komputerze.
Sprawdziłem opcję Zintegrowane zabezpieczenia i ustawiłem ją na wartość false, aby upewnić się, że nie próbuje ona korzystać z logowania do systemu Windows, ale nadal nie działa.
Baza danych została skonfigurowana tak, aby zezwalać zarówno na logowanie do systemu Windows, jak i na logowanie do bazy danych.
Zmieniając opcję Zintegrowane bezpieczeństwo na SSPI, Prawda i na końcu Fałsz, wszystkie 3 dały mi ten sam błąd, co powyżej.
Czy ktoś może mi powiedzieć, czy robię coś nie tak?
UPDATE, tu jest mój dokładny kod (tym razem tylko hasło zostanie usunięte, a Dodałem zdjęcie Management Studio działa na tej samej maszynie):
string _connectionString =
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Connect Timeout=120", // Same problem
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Integrated Security=False;Connect Timeout=120", // Same problem
string.Format("Data Source=%s;User ID=%s;Password=%s;Initial Catalog=%s;Integrated Security=False;Connect Timeout=120", // Same problem
"GANTCHEVI\\SQLEXPRESS",
"FinchAdmin",
"the_password",
"Finch");
http://s113.photobucket.com/albums/n202/ozpowermo/?action=view¤t=ManagementStudio.jpg
I zdobione:
Podczas korzystania th Etykieta "Data Source =" powinna używać "Identyfikatora użytkownika", jeśli używasz identyfikatora użytkownika, wygląda na to, że nie działa!
string _connectionString = "Data Source=GANTCHEVI\\SQLEXPRESS;Initial Catalog=Finch;Integrated Security=False;User Id=FinchAdmin;Password=the_password;Connect Timeout=0";"
+1 Nicea Wyjaśnienie. – Praveen