【发布时间】:2012-08-31 05:35:02
【问题描述】:
我们有一个 ASP.NET MVC 3 网站,它在部署到 Azure 云服务后无法运行。在开发过程中,我们一直在使用 Azure 网站平台对其进行测试,但为了获得对我们自定义域的 SSL 支持,我们现在正尝试将其部署到云服务中的 Web 角色。但是该站点与 SQL Azure 的数据库连接不起作用,而是我们得到:“您尝试连接的 SQL Server 实例不支持加密。” 重试连接不起作用,即错误消息仍然存在。
总而言之,以下是该网站适用和不适用的平台:
- Azure 模拟器:有效
- Azure 网站:Works
- Azure 云服务(Web 角色):不起作用
"How to: Connect to Windows Azure SQL Database Using ADO.NET" 指出错误“您尝试连接的 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 拥有对象)在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection 拥有连接)在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection 外部连接,DbConnectionFactory 连接工厂)在 System.Data.SqlClient.SqlConnection.Open() 在 YoureOnTime.Data.RetryConnectionStringProvider.c_DisplayClass2.b_0() 在 YoureOnTime.Common.Retry.RequestWithRetry(RetryPolicy retryPolicy, 行动行动)在 YoureOnTime.Data.RetryConnectionStringProvider.GetConnection() 在 NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare() 在 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(方言 方言,IConnectionHelper connectionHelper) 在 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory 会话工厂)在 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>
有什么想法吗?
【问题讨论】:
标签: asp.net-mvc-3 nhibernate azure azure-sql-database