【问题标题】:Keyword not supported: 'server'不支持关键字:“服务器”
【发布时间】:2011-10-02 13:47:36
【问题描述】:

我一直在尝试编辑连接字符串以将我的网站上传到服务器。
我对此并没有真正的经验。我得到了这个例外:不支持的关键字:“服务器”。
这是我的连接字符串:

<add name="AlBayanEntities" connectionString="Server=xx.xx.xxx.xxx,xxxx;Database=AlBayan;Uid=bayan;Password=xxxxx;" providerName="System.Data.EntityClient" />

我已经尝试将此字符串嵌入到我的旧连接字符串中,该字符串在本地运行良好,但它不适合:S

【问题讨论】:

  • 你没有说你要连接的 DBMS。
  • marc_s\ 是的,它不像创建 EDMX 后的连接字符串,但这是我的问题,我该如何编辑它:$

标签: asp.net sql-server-2008 entity-framework ado.net connection-string


【解决方案1】:

对于实体框架(数据库优先或模型优先;当您有物理 EDMX 模型文件时)您需要使用一种特殊类型的连接字符串,这与其他人提到的直接 ADO.NET 连接字符串完全不同到目前为止...

连接字符串必须类似于:

<add name="testEntities" 
     connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(local);initial catalog=test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

在此连接字符串中,您会发现 provider connection string= 属性,它基本上就是您的 ADO.NET 连接字符串:

provider connection string=&quot;data source=(local);initial catalog=test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 

所以在这里,您需要更改您的服务器名称和可能的其他设置。

  • data source=.... 代表你的服务器(你也可以使用server=.....
  • initial catalog=..... 代表你的数据库(你也可以使用database=....

【讨论】:

  • @marc_s 你从哪里得到第一个连接字符串
  • @MohitShah - 这里的 UDL 技巧对我有用。我取了 Filburt 生成的部分,并将其拼接到上面,它就像一个魅力。 stackoverflow.com/questions/10479763/…
【解决方案2】:

MVC5 中使用 EntityFramework 6.xx代码优先方法

我遇到了同样的问题,我通过修改我的providerName 解决了这个问题

来自

 providerName="System.Data.EntityClient"

providerName="System.Data.SqlClient"

【讨论】:

    【解决方案3】:

    当您将连接字符串存储在应用服务本身(在“应用程序设置”刀片上)时,Azure 网站上会引发此异常。

    如果连接字符串是实体框架连接字符串,则引号将在您的 web.config 文件中默认编码为 &amp;quot;

    您需要将这些更改回实际引号,以便正确解析连接字符串。

    【讨论】:

    • 这是救命的。非常感谢
    【解决方案4】:

    我总是运行连接向导来构建我的字符串,或者我使用connectionstrings.com

    假设 SQL Server:

    Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
    

    和你的比起来很不一样。

    Server=xx.xx.xxx.xxx,xxxx;Database=AlBayan;Uid=bayan;Password=xxxxx;
    

    【讨论】:

    • 是的,但同样:这 不是 EF 的有效连接字符串!
    • 谢谢,马克,我以为 OP 可以在网站上找到他需要的东西。
    • 该网站显示直接的 ADO.NET 连接字符串 - 正如您所做的那样 - 但没有任何实体框架连接字符串,不幸的是......
    • @marc 我给他们发了一封电子邮件,要求他们包含实体框架。
    【解决方案5】:

    在将 Rider IDE 用于 .net core 2.2 项目时,我也遇到了同样的情况。 由于 Rider 在 Startup.cs 中的“ConfigureServices”方法中自动设置 Sqlite。

    通过改变

    services.AddDbContext<ApplicationDbContext>(options =>
        options.**UseSqlite**(
            Configuration.GetConnectionString("DefaultConnection")));
    

    进入

    services.AddDbContext<ApplicationDbContext>(options =>
        options.**UseSqlServer**(
            Configuration.GetConnectionString("DefaultConnection")));
    

    问题已解决。 当然,首先你必须为 EF SQLServer 安装 nuget 包,并将连接字符串添加到 appsettings.json。

    【讨论】:

      【解决方案6】:

      试试这个

      <add name="AlBayanEntities" connectionString="Data Source=xx.xx.xxx.xxx,xxxx;Initial Catalog=AlBayan;User Id=bayan;Password=1abcd;" providerName="System.Data.EntityClient" />
      

      【讨论】:

      【解决方案7】:
      EntityConnectionStringBuilder bb = new EntityConnectionStringBuilder();
      bb.Metadata = "res://*/dao.bdmi.csdl|res://*/dao.bdmi.ssdl|res://*/dao.bdmi.msl";
      
      //same as below client tobe used
      bb.Provider = "MySql.Data.MySqlClient";
      MySql.Data.MySqlClient.MySqlConnectionStringBuilder mbb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder();
      mbb.Server = "";
      mbb.Database = "";
      mbb.UserID = "";
      mbb.Password = "";
      mbb.PersistSecurityInfo = true;
      
      
      //use providerconnectionstring insted of connectionstring
      bb.ProviderConnectionString = mbb.ToString();
      return bb.ToString();
      

      通过这种方式,您可以随意更改您的ConnectionString

      【讨论】:

        【解决方案8】:

        就我而言,我发现我的项目安装了 EFSQLLite nuget 包,它似乎无法识别 Server= 关键字。 我卸载了那个 nuget 并安装了完整的 EFSQLSERVER,它运行良好

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-07-26
          • 2021-10-23
          • 2021-11-09
          • 2018-07-10
          • 2019-02-09
          • 1970-01-01
          • 1970-01-01
          • 2011-06-06
          相关资源
          最近更新 更多