.net SqlClient和.NET CORE Web API連接字符串

.net asp.net-core c# entity-framework entity-framework-core

是我還是在那裡,sqlclient和.net核心使用連接字符串的方式不同。

示例舊客戶端:

var connectionString = "Data Source=SQLSERV1\\SQLSERV1;Initial Catalog=mydb;User ID=myuser; Password=mypass;";
using (SqlConnection conn = new SqlConnection(connectionString))
{
    ....etc

代碼工作正常,結果從這個SQL客戶端查詢返回。

現在在.NET CORE Web API中:

appsettings.json

"Data": {
    "DefaultConnection": {
        "ConnectionString": "Data Source=SQLSERV1\\SQLSERV1;Initial Catalog=mydb;User ID=myuser; Password=mypass;"
    }
}

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddApplicationInsightsTelemetry(Configuration);

    services.AddMvc()
        .AddJsonOptions(config =>
        {
            config.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        });
    services.AddDbContext<MW_MereSysContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));

當我嘗試導航到瀏覽器中的URL時,我得到:

處理請求時發生未處理的異常.SqlException:建立與SQL Server的連接時發生與網絡相關或特定於實例的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,以及SQL Server是否配置為允許遠程連接。 (提供程序:SQL網絡接口,錯誤:26 - 查找指定的服務器/實例時出錯)

那麼如何讓sqlclient看到服務器沒問題,但.net核心不行?是它處理字符串的方式,即它在域上的事實?

熱門答案

也許這是一個語法問題:

Data Source=Server\\Instance

如果您有默認實例,那麼,只使用:

Data Source=Server


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow