SQL Server 2008 OLE DB СОЕДИНЕНИЕ СБОЙ С ВНЕШНЕЙ - PullRequest
2 голосов
/ 21 февраля 2012

У меня есть работающий SQL Server 2008 R2 Express, установленный на сервере Windows 2008 на облачной машине. Все типы соединений (ado.net, nhibernate и т. Д.) Из нескольких клиентских приложений работают нормально, кроме OLEDB. Собственный клиент SQL также отлично работает.

Когда я пытался подключиться с сервера локально и в качестве источника данных записал имя экземпляра, все было в порядке. Но со стороны у меня возникла проблема, а также, если я напишу wan ip или dns, у меня возникла проблема также и с локального.

-- works perfect from everywhere
Provider=SQLNCLI10;Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx; 

-- does not work from anywhere
Provider=SQLOLEDB.1;Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx;

-- works only from local
Provider=SQLOLEDB.1;Data Source=flz001\sqlexpress;User ID=xxx;Password=xxx;

Ошибка: [DBNETLIB] [ConnectionOpen (недопустимый экземпляр ()). Неверный подключение.

-- works perfect with ado.net
Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx

Некоторые другие клиентские приложения (не мои) были написаны с подключением oledb, поэтому мне нужно, чтобы они подключили БД к провайдеру oledb.

Есть идеи?

С уважением, Mert

1 Ответ

6 голосов
/ 28 августа 2013

Прошло много времени с тех пор, как об этом спросили, но в настоящее время я работаю над проблемой, связанной с OLE DB и SQL Server, которая, возможно, звучит, возможно, связанной.

Я обнаружил, что, хотя сервер использовал порт по умолчанию (1433), мне все равно пришлось явно указать его в строке подключения UDL, например:

Provider=SQLOLEDB.1;User ID=USER;Data Source=IP,1433

Я спросил, почему это может быть необходимо здесь: Почему для SQL Server 2008 OLE DB UDL может быть явно указан порт 1433?

Может быть, попробуйте и посмотрите, поможет ли это.

...