[英]Blazor Webassembly error when adding a ASP.NET Core Web API Project Reference
[英]ASP.NET Core Web API - ConnectionString in project reference
我的解決方案中添加了一個 ASP.NET Core Web API 項目。 它使用連接到 SQL 服務器數據庫的項目依賴項,使用如下連接字符串:
public string connectionString = ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;
這工作正常,另一個 Web/WinForm 應用程序使用這個庫並連接到 SQL 服務器實例(連接字符串在 web.config 或 app.config 中設置)
問題:
ASP.NET Core Web API 工程從庫中使用連接串失敗,我設置了appsetting.json:
"ConnectionStrings": {
"ConnectionName": "Data Source=database;Initial Catalog=catalogname;User ID=username;Password=password;"
},
但始終帶有連接名稱的連接字符串為 null,並且具有:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
似乎 ConfigurationManager 無法讀取 json 文件,您是否嘗試在您的 WebApi 項目中添加一個.config 文件? 我嘗試了以下兩種解決方案:
public class Class1
{
public string? con1 { get; set; }
public string? con2 { get; set; }
public readonly IConfiguration Config;
public Class1()
{
//read connectstring from .config file
con1 = System.Configuration.ConfigurationManager.ConnectionStrings["ReadConnectStringContext"].ConnectionString;
Config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();
//read connectstring from appsettings.json
con2 = Config.GetConnectionString("ReadConnectStringContext");
}
}
結構:
結果:
這是 MS 的文檔:
Class 庫可以像可執行應用程序一樣訪問配置設置,但是,配置設置必須存在於客戶端應用程序的 App.config 文件中。 即使您將 App.config 文件與庫的程序集文件一起分發,庫代碼也不會讀取該文件。
一個快速修復方法是將正確的數據庫連接字符串部分放在 Web/WinForm 應用程序設置文件中。
如果您真的想使用庫項目中的應用程序設置,請使用自定義設置從庫項目中引用應用程序設置。 這是參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.