我们有一个 ASP.NET MVC 3 网站,它在部署到 Azure 云服务后无法正常工作。在开发过程中,我们一直在使用 Azure 网站平台对其进行测试,但为了获得对我们自定义域的 SSL 支持,我们现在正尝试将其部署到云服务中的 Web 角色。但是该站点与 SQL Azure 的数据库连接不起作用,而是我们得到:“您尝试连接的 SQL Server 实例不支持加密。” 重试连接不起作用,该错误消息仍然存在。
总而言之,以下是网站工作的平台和不工作的平台:
- Azure 模拟器:工作
- Azure 网站:工作
- Azure 云服务(Web 角色):不起作用
“如何:使用 ADO.NET 连接到 Windows Azure SQL 数据库”指出错误“您尝试连接的 SQL Server 实例不支持加密”。“表示登录过程中的失败,而不是加密失败。从 .NET 4.5 开始,ADO.NET 会显示更好的错误消息。” Azure 云服务仅限于 .NET 4.0。
该站点正在使用 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.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 在 System.Data。YoureOnTime.Data.RetryConnectionStringProvider .<>c_DisplayClass2.b 处的 SqlClient.SqlConnection.Open()_0() 在 YoureOnTime.Common.Retry.RequestWithRetry(RetryPolicy retryPolicy, Action action) 在 YoureOnTime.Data.RetryConnectionStringProvider.GetConnection() 在 NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare() 在 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords (方言方言,IConnectionHelper connectionHelper) 在 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessionFactory) 在 NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners) 在 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>
有任何想法吗?