![](/img/trans.png)
[英]connectionstring in web.config error : System.InvalidOperationException: Instance failure
[英].NET Core System.InvalidOperationException: Instance failure
将 EF Core 连接到本地 SQL Express 实例时,我突然看到以下错误 -
System.InvalidOperationException: Instance failure.
at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)...
连接字符串来自我的 appsettings.json 文件 -
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"ConnectionStrings:DefaultDatabase": "Server=.\\SQLEXPRESS;Database=MyDatabase;Trusted_Connection=True;User ID=sqluser;Password=password;"
}
我正在像这样访问配置-
public void InitializeContainer(IServiceCollection services, IConfiguration configuration)
{
var db = configuration.GetValue<string>("ConnectionStrings:ConnectionStrings:DefaultDatabase");
services.AddDbContext<MyContext>(options =>
options.UseSqlServer(db));
}
我知道我看到这个错误的原因是因为字符串被转义,所以我的变量最终看起来像这样Server=.\\\\SQLEXPRESS;Database=CustomerContact;Trusted_Connection=True;User ID=swwdev;Password=password;
.
很好,但我该如何解决这个问题? 如果我将appsettings.json
更改为单个\
我会收到另一个错误,说 JSON 无效。 直到最近,我才明白它发生了什么变化。
appsettings.json文件和配置代码都有问题。
将您的连接字符串部分更改为:
"ConnectionStrings": {
"DefaultConnection": "Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=False;User ID=...;Password=...;Connect Timeout=15;Encrypt=False;Packet Size=4096;"
}
....
和你的启动文件:
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
.....
var connString=Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext<MyContext>(options => options.UseSqlServer(connString));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.