Я знаю, что мы должны знать о таких фразах, но внезапно все мои подключения к localhost \ sqlexpress
перестал работать. Поскольку . \ Sqlexpress
и (local) \ sqlexpress
работают, это не было бы большой проблемой, если бы не тот факт, что я работаю над командным проектом, в котором все строки подключения определены в прежнем формате. И, очевидно, мне трудно принять, что это больше не должно работать, поэтому я потратил несколько часов на анализ и переустановку нескольких версий SQL Server, но безрезультатно. (И по дороге ломаются проекты db в VS2010, поэтому мне тоже пришлось переустановить ...)
Но вот подробности. Как уже упоминалось, я не мог подключиться к localhost \ sqlexpress
, но к . \ Sqlexpress
. Те же симптомы при использовании диспетчера SQL Server и строк подключения для развертывания и запуска служб wcf. Как ни странно, разрешение экземпляра по умолчанию как localhost
работает.
Перво-наперво, да, SQL Server запущен, и просто для уверенности я включил TCP / IP и установил фиксированный порт на 1433, хотя он работает на машина моих коллег с отключенным TCP / IP. (Где-то по пути я прочитал, что localhost
может быть разрешен с использованием разделяемой памяти при использовании собственного SQL-клиента, поэтому я предполагаю, что именно это и происходит в его системе.)
Настройка - это только один SQL Server Express. Экземпляр 2008 R2 и VS2010 в Windows 7 Professional.
При запуске Sql Express в журнале ошибок говорится:
Server is listening on [ 'any' <ipv6> 1433].
Server is listening on [ 'any' <ipv4> 1433].
Netstat сообщает (отрывок):
TCP 0.0.0.0:1433 Machinenename:0 LISTENING
TCP [::]:1433 Machinenename:0 LISTENING
Я отмечаю отсутствие 127.0.0.1:1433 и любого UDP на порту 1433
Для диагностики проблемы я использую sqlcmd, чтобы узнать, какой транспорт используется:
1. localhost \ sqlexpress
sqlcmd -Slocalhost\sqlexpress -> Shared memory
sqlcmd -Stcp:localhost\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
Невозможно подключиться к localhost \ sqlexpress из SQL Server Management Studio, даже если я укажу общую память как протокол
2. localhost
sqlcmd -Slocalhost -> TCP
sqlcmd -Stcp:localhost -> TCP
Может подключаться к localhost из SQL Server Management Studio
3. (local) \ sqlexpress
sqlcmd -S(local)\sqlexpress -> Shared memory
sqlcmd -Stcp:(local)\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
Может подключиться к (local) \ sqlexpress из SQL Server Management Studio
Итак, я потерялся здесь. Любая помощь приветствуется.