У нас есть веб-сайт ASP.NET MVC 3, который не работает после развертывания в облачных службах Azure. Во время разработки мы тестировали его с помощью платформы веб-сайтов Azure, но чтобы получить поддержку SSL для нашего личного домена, мы сейчас пытаемся развернуть его в веб-роли в облачных службах. Но соединение базы данных сайта с SQL Azure не работает, вместо этого мы получаем: «Экземпляр SQL Server, к которому вы пытались подключиться, не поддерживает шифрование». Повторная попытка подключения не работает, это сообщение об ошибке сохраняется.
Подводя итог, вот платформы, на которых сайт работает, а где нет:
- Эмулятор Azure: Работает
- Веб-сайты Azure: Работает
- Облачные службы Azure (веб-роль): Не работает
«Как подключиться к базе данных Windows Azure SQL с помощью ADO.NET» указывает, что ошибка «Экземпляр SQL Server, к которому вы пытались подключиться, не поддерживает шифрование.» »указывает на сбой во время процесса входа в систему, а не на сбой шифрования. Начало в. NET 4.5, ADO.NET лучше отображает сообщение об ошибке ». Облачные службы Azure ограничены .NET 4.0.
Сайт использует NHibernate для подключения к БД. Вот ошибка из файла журнала:
Не удалось создать фабрику сеансов nhibernate. FluentNHibernate.Cfg.FluentConfigurationException: при создании SessionFactory использовалась недопустимая или неполная конфигурация. Проверьте коллекцию PotentialReasons и InnerException для получения дополнительных сведений.
- База данных не была настроена с помощью метода базы данных. ---> System.Data.SqlClient.SqlException: экземпляр SQL Server, к которому вы пытались подключиться, не поддерживает шифрование. в System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionClosed.OpenactionConnectionDbConnectionClosed.OpenConnection SqlClient.SqlConnection.Open () в YoureOnTime.Data.RetryConnectionStringProvider. ‹> C_ DisplayClass2.b _0 () в YoureOnTime.Common.Retry.RequestWithRetry (RetryPolicy retryPolicy, ActionTime. RetryConnectionStringProvider.GetConnection () в NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare () на NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords (Dialect диалекте, IConnectionHelper connectionHelper) в NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update (ISessionFactory SessionFactory) в NHibernate .Impl.SessionFactoryImpl..ctor (Конфигурация cfg, Отображение IMapping, настройки параметров, прослушиватели событий EventListeners) в FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory () --- Конец трассировки стека внутреннего исключения ---
А вот как соединение определяется в hibernate.xml:
<property name="connection.connection_string">
data source=database.database.windows.net;Initial Catalog=db;User ID=user;Password=password;Encrypt=true;Trusted_Connection=false;MultipleActiveResultSets=True
</property>
Любые идеи?