Как исполняемые файлы подключаются к SQL Server

#sql #sql-server #sql-server-2008 #exe

Вопрос:

У нас есть .exe файл, который подключается к базе данных SQL Server и создает файл записи ( .txt ) на основе определенной таблицы. Существует ли конкретное соединение или порт, который .exe файлы используют для подключения к SQL Server?

Я не создавал .exe файл, поэтому я не знаю ТОЧНЫХ операций, но я знаю, что должен делать файл, а что нет. Файл генерирует журнал, который показывает:

Ошибка при выполнении: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не был найден или был недоступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. (поставщик: Поставщик именованных каналов, ошибка: 40 — Не удалось открыть соединение с SQL Server)

В журналах SQL Server нет ничего по этому поводу, чего, я полагаю, следовало бы ожидать, поскольку, похоже .exe , файл туда не попадает.

Все функции сервера работают так, как должны работать, т. е. пакеты служб SSIS, вход в систему…и т. Д., И если я вручную выполняю действие, выполняемое .exe, у меня нет проблем с требуемым выводом.

Комментарии:

1. Обычно они подключаются с помощью стандартных библиотек, которые позволяют connection string узнать, к какому серверу подключаться, и специальных портов и т. Д. Надеюсь, рядом с файлом хранится какой exe -то файл, в котором строка подключения хранится в виде открытого текста. Например, если бы это было приложение .NET, мы ожидали бы найти строку подключения в файле с .config расширением.

2. Ошибка в основном означает, что клиент вообще не может подключиться. Возможно, он использует неправильное имя сервера, сервер не работает или брандмауэр блокирует соединение. В любом случае, клиент даже не подключен к серверу, что согласуется с вашими наблюдениями об отсутствии журналов вообще.

3. Нужно увидеть строку подключения — используется ли в ней жестко закодированный IP-адрес вместо DNS-имени?

4. Казалось бы, нет никакого сопутствующего файла конфигурации с .exe, какой-либо другой способ просмотреть строку подключения, которую он использует?

5. Если имя сервера не задано жестко в exec, оно настроено извне. Для этого обычно используются файлы «.config». СЕТЕВЫЕ приложения, но неуправляемые приложения могут использовать файлы «.ini» или реестр. Это когда-нибудь работало? Возможно, отсутствует необходимый конфигурационный файл.

Ответ №1:

мы переименовали сервер в Server_NameV (для виртуальных)

На клиенте создайте псевдоним, который перенаправит старое имя на новый сервер.

введите описание изображения здесь

Или приложение может быть жестко запрограммировано для использования DSN ODBC, который вы можете отредактировать, чтобы указать на новый сервер.