2009-05-09 3 views
0

У меня есть сервер SQL 2008 с тремя экземплярами. Каждому экземпляру присваивается уникальный IP-адрес и прослушивается порт 1433. Включен только TCPIP.Подключения ASP к SQL 2008 Именованный экземпляр

Все мои ASP.Net приложения подключаются успешно используя IP-адрес, с помощью строки подключения, аналогичной:

User ID=SQLUser;Password=userpass;Database=TestDB;Data Source=sqlserver 

Мои ASP приложения будут подключаться только к экземпляру по умолчанию; Я получаю эту ошибку, когда я пытаюсь подключиться к другому экземпляру:

Microsoft OLE DB Provider for ODBC Drivers error '80004005' <br /> 
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection. 

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

driver={SQL Server};server=sqlserver;uid=SqlUser; pwd=userpass; database=TestDB 

Я выключил брандмауэр Windows как на IIS и SQL Server сейчас , Между SQL Server и сервером IIS нет других брандмауэров. В SQL Server работает SQL-браузер. Я попытался изменить строки подключения ASP, чтобы включить имя экземпляра, например:

driver={SQL Server};server=sqlserver/InstanceName;uid=SqlUser;pwd=userpass;database=TestDB 

но я получаю ту же ошибку.

Есть ли способ подключения к именованному экземпляру из ASP?

ответ

2

Написать имя сервера следующим образом:

server=sqlserver\InstanceName 

Кроме того, проверьте номер порта, так как он не может быть на 1433.

Относящиеся SO вопрос:

0

Попробуйте указать IP-адрес. Я подозреваю, что когда он разрешает имя сервера, он получает IP-адрес экземпляра по умолчанию. Поскольку вы привязали их к разграничению IP-адресов, вам нужно либо указать IP-адрес, либо, если IP-адрес будет разрешен для другого имени хоста, используйте имя хоста, которое идет с этим IP-адресом. Я не думаю, что вам нужно указать имя экземпляра, но я не уверен. У нас есть два экземпляра на нашем производственном сервере - один для общедоступных веб-приложений, другой для непубличных веб-приложений. Каждый привязан к отдельному IP-адресу, но адреса обращаются к другим именам. При подключении к каждому экземпляру я должен использовать только правильное имя сервера.

+0

В дополнение к IP-адресу указать порт тоже, как «192.168.0.1,1433» - иногда помогает. Без клиента порт SQl может попытаться использовать сервер RPC для поиска правильного порта и, похоже, не всегда работает с экземплярами. – Arvo

+0

Я попытался использовать IP-адрес и IP-адрес плюс порт, но все равно получаю ту же ошибку. –

1

EDIT: Sql Имена серверов не UNC являются;)

Попытка его с \ вместо а /, как:

mysqlserver\myinstance 

Лично я всегда стараюсь, чтобы включить порт. Это экономит туда и обратно, когда клиент пытается выяснить номер порта:

server=mysqlserver\myinstance,1433;uid=SqlUser;pwd=userpass;database=TestDB 

интересно, база данных является синонимом для начального каталога?

+0

"является базой данных синонимом исходного каталога" - Да. –

+0

Имена SQL Server - это UNC? -1, пока вы не докажете его для tcp/ip – gbn

+0

Правильно, выглядит как \\ работает только для названных каналов. Тем не менее, это все равно обратная косая черта. – Andomar

1

Это чистое предположение.

Возможно, вы используете поставщика SQL OLE DB при подключении к серверу с ASP.net.
Принимая во внимание, что вы используете OLEDB для ODBC, когда речь заходит о ASP (или он выбирает такое соединение для выбора, которое основано на вашей строке соединения).

Это тот случай?
Если это так, это может быть проблема со строкой подключения. См. Www.connectionstrings.com, например, в строке подключения SQL Server.

Если вы используете ODBC, убедитесь, что у вас есть правильный набор драйверов, установленных для того, чтобы подключиться к SQL Server .

Помогло ли это?

EDIT: Я думаю, вы должны изменить строку соединения в ASP при использовании ADO использовать этот http://www.connectionstrings.com/sql-server-2008#20

+0

Я думаю, что вы здесь. Если я использую драйвер SQLOLEDB для ASP, например: Provider = SQLOLEDB; Источник данных = SqlServer; Начальный каталог = TestDB; Идентификатор пользователя = SQLUser; Password = userpass " У меня нет проблем с подключением к серверу, используя только имя хоста (без экземпляра, без порта). Я попытался изменить строки подключения по указанной вами ссылке без каких-либо успехов. ODBC на сервере IIS. –

Смежные вопросы