簡體   English   中英

如何在 Mac 上將 ASP.Net Core 連接到 SQL 服務器 Docker 容器

[英]How to connect ASP.Net Core to a SQL Server Docker container on Mac

我正在 Mac 上使用 Visual Studio 2017 開發 ASP.Net 核心 MVC 應用程序。 但是,我在連接到運行在 Docker 容器上的 SQL 服務器實例時遇到了一些問題。

這是我正在使用的連接字符串:

"ConnectionStrings": {
    "myCustomConnString": "Server=localhost;Database=myDataBase;User Id=sa;Password=myPassw0rd;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

這是我得到的錯誤:

無法使用 Kerberos 進行身份驗證。 確保已使用“kinit”在客戶端上初始化 Kerberos,並且已為 SQL 服務器注冊服務主體名稱以允許 Kerberos 身份驗證。 ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException:GSSAPI 操作因錯誤而失敗 - 請求了不受支持的機制(未知機制代碼 0 表示機制未知)。

使用 SQL Operation Studio、Azure Data Studio 和/或 Visual Studio Code 並傳遞相同的參數,我可以連接到 SQL 服務器的 docker 實例。 但在運行 ASP.Net 核心應用程序時不會。 所以,我不確定我是否缺少連接字符串的任何附加參數。

有人以前試過這個嗎?

問候!

我知道@MikePR 的評論是答案,但我想為我遇到的問題提供更完整的答案。 在使用帶有Trusted_Connection=false的連接字符串后,我無法獲得dotnet ef database命令來執行 evan 。 本文的幫助下,我能夠使用此連接字符串:

"ConnectionStrings": {
    "myCustomConnString": "Server=localhost,1433\\Catalog=myDatabase;Database=myDatabase;User=username;Password=MYSecurePWD;"
  }

現在,我的遷移針對 docker 容器中的 SQL Server 運行。 請注意,該文章不包括使用Trusted_Connection=false 我假設 false 是默認值。

我遇到了同樣的問題,只需刪除Trusted_Connection=True; 即可。 從連接字符串

我按如下方式運行連接字符串,它工作正常

"ConnectionStrings": {
    "DevConnection": "Server=localhost,1433;Database=TarjetaCreditoDB;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=True;"
  }

我能夠通過刪除 Trusted_Connection 來解決我的問題

下面的字符串對我有用。

 Server=sql-server-db,1433;Database=EMP_DB_V2;User=SA;Password=Test_pwd@786;Trusted_Connection=False;MultipleActiveResultSets=True;

通過設置Trusted_Connection=False解決了我的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM