Mam dziwny problem polegający na tym, że próbuję dołączyć do programu SQL Server 2008 uruchomionego na drugim komputerze (oba komputery z systemem Windows 7 w wersji 64-bitowej), albo poprzez źródła danych w Visual Studio, albo przez samą konsolę zarządzania SQL.
Przy pierwszej próbie połączenia upłynął limit czasu. Druga próba działa dobrze.
Mogę uzyskać dostęp do udziałów na drugim komputerze bez żadnych trudności, wygląda na to, że po raz pierwszy próbuję połączyć się z SQL dla każdej instancji aplikacji. Oznacza to, że jeśli otworzę dwie instancje Visual Studio, obie zakończą się niepowodzeniem przy pierwszej próbie połączenia, ale powiodą się przy drugiej. Muszę połączyć się dwukrotnie dla każdej instancji (niezależnie od sekwencji błędów / sukcesów w dowolnej innej aplikacji).
Mam nadzieję, że to ma sens.
Jakakolwiek rada?
źródło
Odpowiedzi:
Myślę, że znalazłem rozwiązanie, przynajmniej w moim przypadku działa. Używam nazwy instancji, a to automatycznie oznacza dynamiczny port dla usługi serwera SQL. Zmieniłem ustawienia z dynamicznego na stały port, a następnie otworzyłem zaporę na tym porcie.
Menedżer konfiguracji programu SQL Server -> Konfiguracja sieci programu SQL Server -> Protokoły dla „InstanceName” -> TCP / IP -> Właściwości -> Adresy IP -> Wszystkie IP ->
Tutaj widzisz dwie opcje:
Skrypt ułatwiający otwieranie portów pobranych z MS i odtwarzam go tutaj (komentarze są w języku niemieckim, ale powinny być oczywiste):
źródło
Moim zdaniem przypuszczam, że masz włączone AUTO_CLOSE dla bazy danych. Oznacza to, że baza danych musi się rozproszyć podczas łączenia, co powoduje początkowy limit czasu.
Po drugie, może to być związane z rozpoznawaniem nazw hostów. Dlatego zbyt długo trwa rozpoznawanie nazwy hosta (może przez transmisję?), Ale potem jest buforowana przy kolejnych próbach połączenia. Czego używasz do rozwiązania hosta? czy to jest w DNS? Spróbuj zmienić ciąg połączenia, aby był w formacie portu IP. tj. 192.168.100.100,1433
Możesz także spróbować uruchomić
ipconfig /flushdns
po udanej próbie połączenia i sprawdzić, czy uzyskasz takie samo zachowanie. Nieostrożne obejście polega na umieszczeniu odnośnika w pliku HOSTS, ale należy go poprawnie naprawić.źródło
Wygląda jak długi strzał w ciemność z opaską na oczy, ale może pomóc. Na forach Microsoft SQL Developer znajduje się stary wątek opisujący, co wydaje się być tym samym problemem, wraz z możliwą poprawką. Na jego serwerze działa system Windows Server 2008, ale może być również odpowiedni dla konfiguracji Win7.
Groźba:
http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/58bd9c4d-0572-4567-8e32-82a7fd600022
Z wątku:
Informacje na temat modyfikowania ustawień podpisywania LDAP można znaleźć w Microsoft KB 935834 (nie mogę się z tym połączyć, ponieważ jestem nowym użytkownikiem).
Mam nadzieję, że to pomoże!
źródło
Wyłącz zaporę ogniową. Testuj sieć (ping). Sniff ruch sieciowy do serwera SQL (użyj Wireshark )
źródło
Czy możesz spróbować uruchomić SQL Profiler przed pierwszym połączeniem z VS lub SSMS i zobaczyć, co się dzieje na SQL Server?
Czy sprawdziłeś także dzienniki zdarzeń, aby sprawdzić, czy coś jest rejestrowane?
źródło