c#, MS SQL Server 2012 i połączenie z innego komputera w sieci

0

Witam,

Napisałam prosty program w c#, który łączy się z bazą MS SQL Server 2012. Kiedy uruchamiam program na tym samym komputerze,
na którym jest zainstalowana baza to wszystko działa prawidłowo. Problem jest gdy chcę uruchomić program na innym komputerze w sieci lokalnej.

Zgodnie z informacjami, które znalazłam w internecie powinnam włączyć obsługę TCP/IP w bazie. Uruchomiłam SQL Server Configuration Manager i w gałęzi SQL Network Configuration -> Protocols for SQLEXPRESS zmieniłam TCP/IP na Enabled.

Nie mogłam w tej gałęzi znaleźć informacji o porcie, ale w innej – SQL Native Client 11.0 Configuraton -> Client Protocols – również znalazłam wpis TCP/IP gdzie jest podany port 1433. Nie wiem czy dobrze, ale założyłam, że właśnie z wykorzystaniem tego portu powinnam się łączyć z bazą.

Jeżeli to istotne to mam ustawione Windows Authentication mode w Server Authentication.
Na koniec zrestartowałam bazę.

Na komputerze gdzie jest baza, łączę ze swojej aplikacji za pomocą (wpis w connection string) localhost\sqlexpress (lub windows8\sqlexpress) i oczywiście wszystko działa.

Na innym komputerze w sieci (wszystkie komputery widzą się nawzajem – ping działa bez problemu) próbowałam na różne sposoby – niestety bez skutku. Sprawdzałam z wykorzystaniem podania adresu IP, nazwy serwera z podaniem portu i bez… czyli:

192.168.134.129\sqlexpress
192.168.134.129,1433\sqlexpress
windows8\sqlexpress
windows8,1433\sqlexpress

Co robię źle? Czy powinnam coś jeszcze zmienić w ustawieniach bazy, a może wpis w connection string źle podaję?

Pozdrawiam
Zuza

0

Firewall nie blokuje? Port to z tego co na szybko znalazłem na google to 1434 a nie 1433.
Management Studio, właściwości serwera, zakładka Connections page, Allow remote connections to this server, masz zaznaczone?

0
ŁF napisał(a):

Port to z tego co na szybko znalazłem na google to 1434 a nie 1433.

Sql domyślnie korzysta z 1433

Włącz 'SqlServer and Windows Authentication' w ustawieniach serwera bazy

0
ŁF napisał(a):

Management Studio, właściwości serwera, zakładka Connections page, Allow remote connections to this server, masz zaznaczone?

Tak, mam zaznaczone.

a_s_f napisał(a):

Włącz 'SqlServer and Windows Authentication' w ustawieniach serwera bazy

Włączone.

...i niestety ciągle to samo - nie łączy się.

Sprawdziłam za pomocą netstat -a czy coś nasłuchuje na porcie 1433 i niestety nie znalazłam w wynikach niczego z tym portem :/
a tak chyba nie powinno być?

Znalazłam jeszcze w internecie, że powinna być włączona usługa SQL Server Browser, ale nie mogę jej w żaden sposób włączyć - przycisk start jest "wyłączony".

Zaczynam wątpić, że uda mi się z tym uporać :(

EDIT:
Udało mi się uruchomić SQL Server Browser, ale nic to nie pomogło.

1
  1. czy możesz się zalogować do sql z komputera, na którym jest zainstalowany, poprzez managament studio, w sposób jak poniżej:

user image

  1. czy możesz w taki sam sposób połączyć się z tym serwerem z innego komputera?

  2. jeśli tak, sprawdź czy poprawnie podajesz connection string http://www.connectionstrings.com/sql-server-2012/

  3. jeśli trzy powyższe ok, a dalej nie działa, to ... pokaż konfogurację serwera, connstring i błąd jaki zwraca.

1

Czesto instaluje mssql server w sieciach klientow. Twoj problem moze miec inne podloze.
Wejdz w Programy - SQL Server Configuration Manager - w Instacje ktora nie dziala - SQL Native Client i wlacz protokol TCP/IP oraz Named Pipes- zarowno w podpunkcie dla wersji 32-bitowej i jak i normalnej. No i w uslugach odpal Server Browser - jak nie jest uruchomiomy mozesz miec "ciekawe" efekty przy polaczeniach w sieci :D
W connection string wpisz pelna nazwe, tak jak podal @noone_logged_out - czyli mojkomputer/instancja.
Zadziala ;)

I nie przejmuj sie wynikami netstat;) Domyslnie Sql Server rzeczywiscie uzywa 1433 (i 1434 dla UDP), chyba ze masz jeszcze XP w sieci, oprocz nowszych systemow - wtedy sam skonfiguruj wyjatki w Firewallu - tak zeby port 1433 byl tylko dla SQL blala.exe.
Aaaa.. i jeszcze oprocz wyjatkow dla portow naturalnie dla programow: server i browser.

0

Zrobiłam wszystko tak jak radziliście, ale nic nie pomogło.
Program jednak już działa :)

Coś chyba „nawaliło” przy wykorzystaniu Entity Framework. Visual Studio i MS SQL Server mam na tym samym komputerze…
i na tym komputerze – lokalnie – wszystko działało prawidłowo.

Zainstalowałam jednak Visual Studio na drugim komputerze, w projekcie w Server Explorer dodałam połączenie z bazą z pierwszego komputera i jeszcze raz „odpaliłam” EF.
Po przejściu przez cały „wizard” porównałam utworzony connection string z tym, który miałam z pierwszego komputera. Wszystko było identyczne,
ale teraz po skompilowaniu program działa jak trzeba – łączy się zdalnie z bazą danych.

Dziękuję za pomoc i cenne rady – jestem pewna, że jeszcze nie raz mi się przydadzą przy innych programach :)

0

Czyli pewno nie miałaś zainstalowanych jakichś bibliotek na drugim komputerze.
Szkoda, że zamiast opisać faktyczny problem zmyliłaś wszystkich pisaniem o braku połączenia z serwerem po sieci.

0

No cóż, pewnie jeszcze nie zawsze umiem prawidłowo zdiagnozować problem, ale szybko się uczę :)

Hmm, sprawdziłam jeszcze wszystko na kolejnym komputerze i sytuacja wygląda tak, że program skompilowany na pierwszym komputerze nie działa, a program z drugiego komputera działa.
Czyli to chyba jednak nie jest problem brakujących bibliotek? ...no, ale najważniejsze, że ostatecznie mam działającą wersje :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1