машины 1Строка соединения таймаут с именем сети, но работает с IP
- Windows Server 2008
- SQL Server 2008
базы данных. Содержит всю информацию, которую используют наши сайты.
машина 2
- Windows Server 2012
- IIS 8
Веб-сервер. Использование IIS для размещения двух сайтов:
- сайт Производство: (по умолчанию) имеет самую последнюю дату пользовательского интерфейса и функции
- резервного копирования сайта: Старые UI, но до сих пор используют самые последние данные машина 1
Вот как это работает:
- Пользователь переходит на сайт, размещенный на Machine 2, и вводит информацию о своей компании
- Машина 1 запрошена для строки подключения этой компании.
- Сайт использует строку подключения для подключения к правильной базе данных на машине 1.
Проблема заключается в том, что около 1/3 из строки соединения используют имя сети (например, «Источник данных =„Machine1“ ; "), в то время как другие 2/3 используют IP-адрес (например,« Источник данных = 192.168.1.200; »). При подключении через сайт Production происходит тайм-аут, если используется строка подключения с сетевым именем. Однако, если один и тот же пользователь, используя одни и те же учетные данные, регистрируется на сайте резервного копирования, все работает нормально, независимо от того, какой источник данных используется.
Я создал простой скрипт Powershell для проверки соединения с Machine 2; имена сетей и IP-адреса работают, что заставляет меня подозревать, что это проблема IIS или web.config. Я прошел через обе широко, и только эти различия я заметил:
- Различные Пулы приложений в IIS: Тем не менее, когда я побежал «Get-CimInstance Win32_Process» он показал оба экземпляра w3wp. exe был запущен с той же командой и аргументами (за исключением разных труб)
- Немного другой web.config. Сайт Backup имеет полностью автономный web.config, а Production on хранит его строки подключения - отдельный файл.
Я бил головой об этом в течение нескольких дней.Очень ограничено в шагах, которые я могу принять, рассматривая этот веб-сайт и базу данных . Любые советы приветствуются.
попробовать machine1.fullyqualifed.domainname.com – granadaCoder
также попробовать machine1 с сетевым протоколом, указанным в строке подключения. см. https://www.connectionstrings.com/define-sql-server-network-protocol/; Network Library = DBMSSOCN; – granadaCoder
Сетевой протокол был проблемой, хотя и по-другому. По какой-то причине приложение использует Named Pipes (которые отключены на сервере) вместо TCP. Переход к завтрашнему дню, если включение Named Pipes выполнило трюк (конфигурация сервера может быть сброшена только один раз в день). Спасибо за помощь. – TripleD