#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» или реестр. Это когда-нибудь работало? Возможно, отсутствует необходимый конфигурационный файл.