ArgumentException:不支持关键字:“服务器”

Nau*_*far 5 sql deployment asp.net-mvc connection-string azure

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

[ArgumentException:不支持关键字:“服务器”。]

我的连接字符串如下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;
    "
Run Code Online (Sandbox Code Playgroud)

我相信这个连接字符串有问题。任何有关此方面的帮助都将受到高度赞赏。

编辑

从此处读取SQL Server 连接字符串并遵循 EF Db First 或 Model First 连接字符串示例

<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;" />
Run Code Online (Sandbox Code Playgroud)

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

<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"/>
Run Code Online (Sandbox Code Playgroud)

它说

不支持关键字“数据源”

小智 5

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

要解决这个问题:

  • &quot;用。。。来代替"
  • 将连接字符串类型指定为Custom但不是SQL Database

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

最后,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";
Run Code Online (Sandbox Code Playgroud)