【问题标题】:MVC app deployed on Azure cannot connect to SQL Azure Database but can connect via SSMS部署在 Azure 上的 MVC 应用无法连接到 SQL Azure 数据库,但可以通过 SSMS 连接
【发布时间】:2012-07-04 15:16:28
【问题描述】:

我有一个使用 Entity Framework 的 MVC 3 应用程序,该应用程序愉快地托管在 Azure 中,并在 2 天前与 SQL Azure 数据库通信。然后,我对数据库进行了轻微的架构更改,因此通过 SSMS 删除并重新创建了数据库,并再次发布了应用程序,因为我已将默认 MVC 应用程序登录角色控件添加到站点 - 从那时起我无法让我的应用程序连接到数据库并在 Elmah xml 文件中记录以下错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)" source=".​​Net SqlClient 数据提供者" detail="System.Data.EntityException

我可以使用 SSMS 连接到 SQL Azure 数据库,当我在连接到 SQL Azure 数据库的 Azure 模拟器中运行我的应用程序时,一切都运行良好,但一旦发布它就拒绝连接。任何帮助将不胜感激!

【问题讨论】:

  • 我已经意识到问题是当我发布我的应用程序时,它似乎没有从 web.release.config 文件中获取设置,但它正在使用 web.config 中的设置.我不明白为什么会这样,因为我正在“发布”配置中构建解决方案 - 有什么想法吗?

标签: asp.net-mvc-3 azure azure-sql-database


【解决方案1】:

SQL Azure 连接字符串(使用 EF 模型优先/数据库优先)通常如下所示:

<connectionStrings>    
    <add name="SampleEntities" connectionString="metadata=res://*/Models.SampleEntities.csdl|res://*/Models.SampleEntities.ssdl|res://*/Models.SampleEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=tcp:abcdefg.database.windows.net,1433;Database=asdf;User ID=manager@abcdefg;Password=XXXXXX;Trusted_Connection=False;MultipleActiveResultSets=True;Encrypt=True;&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

SQL Azure 连接字符串(使用 Code First)通常如下所示:

<connectionStrings> 
   <add name="SampleContext" connectionString="Data Source=tcp:abcdefg.database.windows.net,1433;Database=asdf;User ID=manager@abcdefg;Password=XXXXXX;Trusted_Connection=False;MultipleActiveResultSets=True;Encrypt=True" providerName="System.Data.SqlClient" />   
</connectionStrings>

第二个连接字符串也可以在没有实体框架的情况下工作。

【讨论】:

  • @gaurav 没错,我扩展了帖子以包括非 EF(模型优先)sql azure 连接字符串
【解决方案2】:

我相信您已向 Azure 发布了一个配置,该配置没有正确的 SQL Azure 服务器名称,而是一些本地/本地 SQL 服务器。会是这样吗?您可以远程进入实例并验证正确的 .config 和 SQL Azure 服务器吗?

从错误看来,您的应用程序没有使用 TCP/IP 连接到 SQL Azure,而是使用命名管道,这通常意味着 SQL Azure 服务器名称可能不是有效的 TCP/IP 主机。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多