Я пытаюсь настроить веб-сайт, размещенный на виртуальной машине Azure IaaS, для связи с базой данных, размещенной на Azure PaaS SQL. Однако при попытке подключения я получаю исключение:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
С самой виртуальной машины я могу подключиться с помощью SSMS к рассматриваемому серверу, используя его имя хоста [name] .database.windows.net с несколькими пользователями / паролями (скопировать / вставить из KeePass).
Из веб-приложения подключение настраивается с помощью строки подключения в файле web.config. Строка подключения была скопирована / вставлена с портала Azure и изменена, чтобы содержать имя пользователя и пароль (также скопированы / вставлены из KeePass). В качестве дополнительного теста я скопировал / вставил строку подключения на вкладку «Дополнительные параметры подключения» в диалоговом окне SSMS «Подключиться к серверу» и смог подключиться таким же образом.
Это общение "внутри" и "внутри" (https://docs.microsoft.com/en-us/azure/sql-database/sql-database-develop-direct-route-ports-adonet-v12), и я добавил разрешающее правило в брандмауэр Windows на виртуальной машине для исходящих временных портов SQL.
Может ли кто-нибудь предложить что-то, что я могу упустить, чтобы заставить это работать?
Конечным решением было взорвать существующую виртуальную машину и перестроить ее с нуля. Новая ВМ работает безупречно.
Как размещается веб-приложение - только в IIS? Что это за тип веб-приложения - .Net и т. Д.? Какие драйверы SQL у вас установлены на виртуальной машине?