Blad połączenia do bazy MSSQL mimo dzialajcego serwera

0

Mam zainstalowany MS SQL Server 2005 Express Edition Sp2. Nazwa mojej instancji to MSSQLSERVER (co widać w oknie Surface Area oraz liście usług). Włączyłem obsługę zdalnych połączeń za pomocą TCP. Ustawiony mam standardowy port 1433. Zapora ma odblokowany ten port. Za pomocą SQL Management Studio Express łączę się bez problemu. Również przy wybranym protokole tylko TCP (opcje podczas logowania). Chciałem utworzyć prostą aplikację konsolową utworzoną w Visulal C++ Express Ed. 2008. Jednak nie otrzymuję połączenia. Serwer i aplikacja są na tej samej maszynie. Mój adres IP:192.168.1.101. Za pomocą Server Configuration Mamager ustawiono nasłuchiwanie na wszystkich interfejsach sieciowych na statycznym porcie 1433. Polecenie telnet 192.168.1.101 1433 łączy się. Mój kawałek programu:

using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
const char* polacz = "server=192.168.1.101\\MSSQLSERVER;trusted_connection=true;database=test";
int main(array<System::String ^> ^args)
{
SqlConnection^ conn = gcnew SqlConnection(gcnew String(polacz));
SqlCommand^ command = gcnew SqlCommand("select * from dbo.osoby", conn);
conn->Open();
SqlDataReader^ reader = command->ExecuteReader();
if (reader->HasRows)
{
while (reader->Read())
{
Console::WriteLine("ID = {0}, Imię = {1}, Nazwisko = {2}",reader[0],reader[1],reader[2]);
}
}
reader->Close();
conn->Close();
return 0;
}

Jednak otrezytmuję wyjątek:
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)

Co robię nie tak? Zaczynam dopiero w C++/CLI. Czy łańcuch połączeniowy jest poprawny?

Z poziomu sqlcmd zalogowałem się nie podając nazwy instancji. Program ruszył, gdy w łańcuchu połączeniowym usunąłem MSSQLSERVER. Dlaczego tak się dzieje?

0

o ile mnie pamiec nie myli, a moze mylic, bo dawno w tym temacie nie grzebalem:

sprawdz czy masz wlaczona usluge "MSSQL Server Browser", jest ona konieczna do laczenia sie z instancjami nazwanymi. jesli nie masz takiej uslugi lub nie mozesz jej wlaczyc, to NIE bedziesz mogl sie polaczyc z nazwanymi instancjami, a jedynie do DOMYSLNEJ, przy czym nie da sie 'przekonwertowac' instalacji nazwanej na domyslna, trzeba zainstalowac serwer na nowo, z opcja bycia domyslnym, a potem przeniesc bazy danych ze starego na nowy recznie (detach/attach)

0

Myślałem, że usługa Browser służy do dynamicznego przeydzielania portu. Ja zdefiniowałem na domyślnym porcie 1433. Włączę i sprawdzę.

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