![](/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.