2012-09-17 12 views
14

To dziwne, ponieważ mogę połączyć się z localDB przez SSMS 2008R2 z ten sam ciąg połączenia ("Data Source=(LocalDB)\v11.0;Integrated Security=true")Nie można połączyć się z localDB w VS2012 - "Wystąpił błąd związany z siecią lub wystąpieniem konkretnej instancji podczas nawiązywania połączenia z serwerem SQL ..."

Tylko kod C# nie może się połączyć, próbowałem zwiększyć czas logowania z Connect Timeout=60, ale bez powodzenia.

Próbowałem również określić bazę danych Initial Catalog=<databasename>, gdzie > jest nazwą >, którą utworzyłem na localdb przez ssms.

Jakieś wskazówki, dlaczego tak się nie łączy?

+0

Najpierw podłączyć bazę danych przez sever Explorer w VS. Po sukcesie połączenia kliknij prawym przyciskiem myszy i znajdź właściwość. Tam otrzymasz ciąg połączenia. Po prostu skopiuj i wklej w web.config. –

+0

@Kundan Zrobiłem to, ale spowodowało to ten sam błąd. Eksplorator serwerów został pomyślnie podłączony, a następnie skopiowałem ciąg połączenia z właściwości zgodnie z opisem, ale moja aplikacja nadal nie mogła się połączyć, używając tego samego ciągu. –

+0

Czy możesz po prostu wkleić ciąg połączenia? –

Odpowiedz

33

Masz taką szansę, ponieważ zapomniałeś podwójnie uciec od ukośnika? Czy spróbować to:

"Data Source=(LocalDB)\\v11.0;Integrated Security=true"

Albo jeszcze lepiej, można po prostu używać znaku @ wyłączyć charakter ucieczki przez cały ciąg połączenia:

@"Data Source=(LocalDB)\v11.0;Integrated Security=true"

+0

Ah, to jest naprawdę podstęp. Dlaczego wymaga podwójnego \\? naprawdę dziwne .. Dzięki! zadziałało. –

+1

wydaje się \ v jest specjalną postacią! –

+5

Dokładnie! Bez podwójnego ucieczki "\ v" jest traktowane jako pojedynczy (i specjalny) znak. Możesz również użyć '@' (w języku C#), aby uniknąć ucieczki, zaktualizowałem swoją odpowiedź, aby to odzwierciedlić. –