asp.net 不支持关键字:服务器

h9vpoimq  于 2023-08-08  发布在  .NET
关注(0)|答案(9)|浏览(139)

我一直在尝试编辑我的连接字符串上传我的网站到服务器。
我真的没有这方面的经验。我得到了这个例外:不支持的关键字:'服务器'。
下面是我的连接字符串:

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

字符串
我尝试将这个字符串嵌入到我的旧连接字符串中,它在本地工作得很好,但它不适合:S型

busg9geu

busg9geu1#

对于Entity Framework(数据库优先或模型优先;当你有一个物理的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=....
y4ekin9u

y4ekin9u2#

MVC5中使用EntityFramework 6.xx代码优先方法
我遇到了同样的问题,我通过修改我的providerName解决了这个问题。

providerName="System.Data.EntityClient"

字符串

providerName="System.Data.SqlClient"

wvmv3b1j

wvmv3b1j3#

当您将连接字符串存储在应用服务本身(在“应用程序设置”刀片上)时,Azure网站会引发此异常。
如果连接字符串是EntityFramework连接字符串,则在web.config文件中,引号默认编码为&quot;
您需要将它们改回实际的引号,以便正确解析连接字符串。

pbwdgjma

pbwdgjma4#

同样的事情也发生在我使用Rider IDE进行.net core 2.2项目时。As 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。

mxg2im7a

mxg2im7a5#

我总是要么运行连接向导来构建我的字符串,要么使用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;

wmtdaxz3

wmtdaxz36#

试试这个

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

字符串

enxuqcxy

enxuqcxy7#

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

wlp8pajw

wlp8pajw8#

在我的例子中,我发现我的项目安装了EFSQLLite nuget包,它似乎不能识别Server=关键字。我卸载了那个nuget并安装了完整的EFSQLSERVER,它工作得很好

vwhgwdsa

vwhgwdsa9#

如果您将数据库从Sqlite更改为SqlServer。您可能会遇到此错误。
将您的连接从

builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlite(connectionString));

字符串

第一个月

相关问题