Классическая строка подключения удаленного SQL ASP - PullRequest
2 голосов
/ 19 августа 2011

У меня есть дилемма, которая полностью и совершенно сбивает меня с толку ...

У нас есть классический сайт ASP, который работает около года и работает через локальную базу данных SQL Win2008 (механизм SQL Express находится на том же сервере, что и IIS). Это строка подключения, которую мы в настоящее время используем

Provider=SQLNCLI10;Server=SERVERNAME\SQLEXPRESS;Database=dbname;user id=username;password=password;

Теперь нам нужно переместить базу данных на выделенный сервер БД и подключиться к ней удаленно - мы восстановили БД на сервере и проверили, что все выглядит нормально (все данные присутствуют во всех таблицах)

Таким образом, мы изменили имя сервера на IP-адрес и не смогли подключить его, в конце концов единственный способ, которым мы могли подключить его, - использовать эту строку подключения.

driver={SQL Server Native Client 10.0};server=IPADDRESS\SQLEXPRESS,1433;uid=user;pwd=password;database=dbname;

ОДНАКО ... Теперь он случайно пропускает названия продуктов, артикулы и цены в передней и задней части, даже если данные присутствуют в БД И ДЕЙСТВИТЕЛЬНО медленно отображать веб-страницы? Если я использую ту же БД локально с предыдущей строкой подключения, то все нормально, и все данные отображаются?

Я знаю, что с этим сервером БД все в порядке, так как он питает другие сайты ASP.NET через удаленное соединение, и они очень быстро подключаются?

Любые подсказки ... или помощь по поводу того, почему эта новая строка подключения вызывает проблемы с чтением данных из БД ???

1 Ответ

2 голосов
/ 19 августа 2011

Чтобы обновить собственный клиент на веб-сервере до самой последней общедоступной версии, перейдите по ссылке:

http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2567714

Установите флажок «2008R2_SP1_SNAC_CU2_2567714_10_50_2772_x86», если ваш веб-сервер являетсяМашина X86 и «2008R2_SP1_SNAC_CU2_2567714_10_50_2772_x64», если она 64-разрядная.Введите свой адрес электронной почты, заполните капчу, нажмите «Исправление запроса» и ссылка для загрузки будет отправлена ​​вам по электронной почте.Загрузите его на веб-сервер, запустите программу установки (используя пароль, отправленный вам по электронной почте) и перезапустите веб-сервер.Теперь попробуйте исходную строку подключения еще раз.

EDIT

Добавление некоторых других примеров строк подключения, которые я использовал в прошлом (я был классическим парнем из ASP, так как90-е годы - основание и запись 95% контента на aspfaq.com , включая эту статью о строках соединения ).В соответствии с просьбой в комментарии к первоначальному вопросу.

Обратите внимание, что "srv" может быть IP-адресом, или localhost, или servername, или ., и за ним может следовать \INSTANCE_NAME (например \SQLEXPRESS).Я бы попробовал их в этом порядке и обратил бы внимание на имена параметров, а также значения - кажется, вы смешиваете современные имена параметров (например, Provider) с менее современными (например, Database).

Provider=SQLNCLI10;Data Source=srv;Initial Catalog=db;User ID=user;Password=pwd;

Provider=SQLOLEDB.1;Data Source=srv;Initial Catalog=db;User ID=user;Password=pwd;

Provider=SQLOLEDB;Data Source=srv;Initial Catalog=db;User ID=user;Password=pwd;

Driver={SQL Server};Server=srv;Database=db;UID=user;PWD=pwd;

Иногда, если у вас возникают проблемы с именованными каналами или общей памятью, это может помочь в применении TCP / IP, добавив следующий параметр:

NETWORK=DBMSSOCN;

Вы можете получить гораздо больше информации на сайте Карла Протмана или ConnectionStrings.com .По понятным причинам они больше не обслуживают классический ASP, но вы все равно можете получить много информации из примеров, которые они предоставляют для других языков.

...