Я работаю над типичным веб-приложением, используя облачные сервисы, чтобы узнать, как использовать windows azure. В моем развертывании у меня есть две роли: веб-роль, выполняющая приложение ASP.NET MVC, и роль рабочего, которая предоставляет некоторые вспомогательные службы.Роль рабочего не будет подключаться к SQL Azure
База данных размещена на SQL Azure (в той же подписке и центре обработки данных) и управляется с использованием Entity Framework Code First. Строка соединения - это один доступный Azure.
Странно, что в роли веб-сайта Entity Framework успешно связывает и выполняет запросы к базе данных SQL Azure. Но когда тот же код выполняется в Worker Role, он падает со следующим исключением:
System.Data.SqlClient.SqlException: 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: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Я проверил, что соединительные строки используются те же, но не увенчались успехом в определении, почему работник роль не будет подключения.
EDIT: Выполненная роль с использованием Compute Emulator и строки подключения SQL Azure (с уже настроенным корректным исключением брандмауэра), и код не сработал. По-видимому, это происходит только тогда, когда код запускается в Cloud.
EDIT 2: Брандмауэр SQL Azure настроен правильно, чтобы разрешать соединения с Azure Datacenter, о чем свидетельствует успешное соединение веб-роли.
Это было действительно то, что случилось со мной –