Указание порта с помощью SqlConnectionStringBuilder?

Я столкнулся с загвоздкой. Мне нужно указать номер порта для моей локальной установки SQL Server 2008 R2. До сих пор я пытался использовать SqlConnectionStringBuilder с источником данных, установленным как .\TESTSERVER, 1433, который, согласно всей документации, должен подключать меня к серверу TESTSERVER через порт 1433 (по умолчанию ).

Строка подключения имеет вид:

{Data Source=".\TESTSERVER, 1433";Initial Catalog=AdventureWorks;User ID=testuser;Password=MYPASSWORDHERE}

Однако я получаю сообщение об ошибке, похожее на:

A network related or instance-specific error has occurred while establishing a connection 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: TCP provider, error:0 - no connection could be made because the target machine actively refused it.

После проверки строки подключения с помощью SqlConnectionStringBuilder.ToString()получается почти так, как предлагает MSDN . По какой-то причине он заключает в двойные кавычки ТОЛЬКО источник данных и ничего больше. Однако это может быть просто отладчик, удаляющий внешние кавычки, поскольку он хранится в типе данных string. Я также проверил, что SQL-сервер доступен без указания порта, и это так. Наконец, я убедился, что серверу разрешено принимать удаленные подключения. Учитывая, что этот экземпляр SQL Server установлен локально, с использованием порта по умолчанию, и на моем компьютере для разработки, я не мог представить, почему я получаю такую ​​​​ошибку.

Это потому, что SqlConnectionStringBuilder переопределяет мой порт своим собственным портом? Нужно ли мне по какой-то причине открывать порты на моем брандмауэре? Зная, что это полностью локальная установка, проблем с брандмауэром быть не должно. Я бы предпочел не создавать строку подключения вручную. Не то, чтобы это сложно, это просто добавляет уровень сложности моему коду, которого я предпочел бы не иметь без необходимости.

Любая помощь будет оценена по достоинству. Спасибо!

РЕДАКТИРОВАТЬ:

После долгого изучения синтаксиса SqlConnectionStringBuilder выяснилось, что он обрабатывает недопустимые параметры, передавая их в строку подключения, заключенную в кавычки.Я предполагаю, что это связано с тем, что он разрывает строку соединения. Мой вопрос все еще остается:есть ли способ передать порт через SqlConnectionStringBuilder или мне придется его построить самому?

9
задан David W 2 July 2012 в 04:15
поделиться