【问题标题】:How to override Azure Sql connection in Azure portal如何在 Azure 门户中覆盖 Azure Sql 连接
【发布时间】:2015-08-28 09:09:21
【问题描述】:

我尝试使用此连接覆盖 Azure 门户中的 connectionstring

Server=tcp:server.database.windows.net,1433;Database=mydatabase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;

它给了我一个错误Keyword not supported: 'server',当我尝试它时:

metadata=res://*/DataAccess.MyDataBase.csdl|res://*/DataAccess.MyDataBase.ssdl|res://*/DataAccess.MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:server.database.windows.net,1433;initial catalog=MyDataBase;persist security info=True;user id=username@server;password=xxxxxx;MultipleActiveResultSets=True;App=EntityFramework""

它给"Keyword not supported: 'metadata'.!!

那么我应该写的确切的connectionstring 是什么?

我还尝试了屏幕截图中提供的所有连接字符串类型。

【问题讨论】:

    标签: entity-framework azure azure-sql-database


    【解决方案1】:

    好的,我找到了一个与我的问题相关的answer,但我也发现了一些东西

    第一个的所有连接字符串应该像

    metadata=res://*/DataAccess.MyDataBase.csdl|res://*/DataAccess.MyDataBase.ssdl|res://*/DataAccess.MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:server.database.windows.net,1433;Database=MyDataBase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
    

    注意 quotation 应该是 " 而不是 " ,正如尼克所说,它应该是 Custom

    【讨论】:

      【解决方案2】:

      第一个连接字符串 ('Server=..') 用于直接连接到数据库,而不通过实体框架。
      第二个连接字符串 ('metadata=..') 是一个实体框架连接字符串。如果您使用的是 EF,则应将 Azure 管理门户中的连接字符串标记为 'Custom',而不是 'SQL Database'

      【讨论】:

      • 我提到我尝试了所有类型的 SQL Database、SQL Server、Custom
      【解决方案3】:

      在控制面板中,数据库面板上有一个位置显示“显示数据库连接字符串”,它为您提供了用于 ADO.Net、PHP、Java 和 ODBC 的数据库的完整连接字符串。这些可以作为一个起点,我从中添加了 MARS 支持和不同的用户/密码。

      这是我的连接字符串来帮助你。我们使用这个来覆盖 Azure WebApps 控制面板。

      Server=tcp:[AZURE_DB_NAME].database.windows.net,1433;Database=[DATABASE_NAME];User ID=[USER_ID];Password=[PASSWORD];Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;MultipleActiveResultSets=True
      

      至于下拉,我们将其设置为 SQL 数据库。

      想到的一件事。您是否尝试过在 VS 调试模式下使用连接字符串来查看会发生什么?您只需要配置您的 AzureDB 以允许来自您的 IP 的远程连接即可工作。它可以为您提供一些见解,即您的连接是正确的,但其他一些事情是失败的。

      【讨论】:

      • 是的,Martin 我尝试从数据库面板复制/粘贴此连接字符串,但它对我不起作用,我也对 SQL 数据库进行了尝试! .可能有什么问题,我不知道。关于您的问题,是的,我将 AzureDB 配置为允许从我的 IP 进行远程连接。任何方式现在都可以使用,感谢您的帮助:)
      【解决方案4】:

      我尝试了 Mohamed Farrag 的解决方案,但收到此错误:

      System.ArgumentException:不支持关键字: '.ssdl|res://*/dataaccess.MyDataBase.msl;provider'。

      从我的连接字符串中删除 DataAccess. 后它起作用了:

      metadata=res://*/MyDataBase.csdl|res://*/MyDataBase.ssdl|res://*/MyDataBase.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:server.database.windows.net,1433;Database=MyDataBase;User ID=username@server;Password=xxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        • 2019-06-09
        • 2019-07-04
        相关资源
        最近更新 更多