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

问题描述 投票:0回答:2

我有一个 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;
    "

我相信这个连接字符串有问题。非常感谢任何有关此方面的帮助。

编辑

从此处阅读 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;" />

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

<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"/>

它说

不支持关键字“数据源”

sql asp.net-mvc azure deployment connection-string
2个回答
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";

0
投票

如果连接字符串的代码行出现错误,请尝试从 web.config 文件中删除以下代码。

Trust Server Certificate=True
© www.soinside.com 2019 - 2024. All rights reserved.