ArgumentException:不支持关键字:'server'

时间:2017-01-02 09:44:30

标签: sql asp.net-mvc azure deployment connection-string

我有一个Asp.net MVC5应用程序并已将其发布到Microsoft Azure。我首先将.mdf个文件迁移到Sql Azure DatabasesAzure Portal中提供的数据库连接字符串无效。

  

[ArgumentException:不支持关键字:'server'。]

我的连接字符串如下web.config

connectionString="
    Server=tcp:dbprojectserver.database.windows.net,1433;
    Initial Catalog=db_project;
    Persist Security Info=False;
    User ID=username@servername;
    Password=kenth&&123;
    Encrypt=True;
    TrustServerCertificate=False;
    Connection Timeout=30;
    "

我相信这个连接字符串有问题。对此有任何帮助表示高度赞赏。

修改

从这里读取SQL Server Connection Strings并首先关注EF Db或模型第一个连接字符串示例

<add name="ConnectionStringName"
    providerName="System.Data.EntityClient"
    connectionString="metadata=res://*/ ContextClass.csdl|res://*/ ContextClass.ssdl|res://*/ ContextClass.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=ServerName;Integrated Security=False;User Id=userid;Password=password;MultipleActiveResultSets=True&quot;" />

这是我根据上面的例子使用的

<add name="ProjectEntities" connectionString="metadata=res://*/ ProjectWeb.Models.User.csdl|res://*/ ProjectWeb.Models.User.ssdl|res://*/ ProjectWeb.Models.User.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=tcp:dbprojectserver.database.windows.net,1433;Integrated Security=False;User Id=username@servername;Password=kenth$$123;MultipleActiveResultSets=True&quot;
      " providerName="System.Data.EntityClient"/>

它说

  

不支持关键字'数据源'

1 个答案:

答案 0 :(得分:0)

在应用程序服务设置(应用程序设置 - &gt;连接字符串)中的Azure门户上指定EF连接字符串时,我遇到了同样的问题。

修复它:

  • &quot;替换为"
  • 将连接字符串类型指定为自定义,但不能指定为 SQL数据库

此外,我可以看到您的最新示例中没有初始目录。您需要添加它并在此参数中指定数据库。

最后,Azure门户中应用程序设置的连接字符串应如下所示:

metadata=res://*/ ProjectWeb.Models.User.csdl|res://*/ ProjectWeb.Models.User.ssdl|res://*/ ProjectWeb.Models.User.msl;
provider=System.Data.SqlClient;
provider connection string="Data Source=tcp:dbprojectserver.database.windows.net,1433;Initial Catalog=<your database>;Integrated Security=False;User Id=username@servername;Password=kenth$$123;MultipleActiveResultSets=True";