如何在 Mac 上将 ASP.Net Core 连接到 SQL Server Docker 容器
Posted
技术标签:
【中文标题】如何在 Mac 上将 ASP.Net Core 连接到 SQL Server Docker 容器【英文标题】:How to connect ASP.Net Core to a SQL Server Docker container on Mac 【发布时间】:2018-10-27 16:53:38 【问题描述】:我正在 Mac 上使用 Visual Studio 2017 开发 ASP.Net 核心 MVC 应用程序。但是,我在连接到在 Docker 容器上运行的 SQL Server 实例时遇到了一些问题。
这是我正在使用的连接字符串:
"ConnectionStrings":
"myCustomConnString": "Server=localhost;Database=myDataBase;User Id=sa;Password=myPassw0rd;Trusted_Connection=True;MultipleActiveResultSets=true"
这是我得到的错误:
无法使用 Kerberos 进行身份验证。确保 Kerberos 使用“kinit”和服务主体名称在客户端上初始化 已为 SQL Server 注册以允许 Kerberos 验证。错误代码=内部错误, 异常=Interop+NetSecurityNative+GssApiException:GSSAPI 操作 错误失败 - 请求了不受支持的机制(未知 mech-code 0 表示机械未知)。
使用 SQL Operation Studio、Azure Data Studio 和/或 Visual Studio Code 并传递相同的参数,我可以连接到 SQL Server 的 docker 实例。但不是在运行 ASP.Net 核心应用程序时。所以,我不确定我是否缺少连接字符串的任何附加参数。
有人试过这个吗?
问候!
【问题讨论】:
找到了如何连接到 SQL Server 的 Docker 实例。我必须设置 Trusted_Connection=false。之后,我可以在运行 ASP.Net 核心应用程序时进行连接。 谢谢!我在这个上浪费了很多时间,然后就修好了! 【参考方案1】:我知道@MikePR 的评论可以作为答案,但我想为我遇到的问题提供更完整的答案。在将连接字符串与Trusted_Connection=false
一起使用后,我无法让dotnet ef database
命令执行evan。在this article 的帮助下,我能够使用这个连接字符串:
"ConnectionStrings":
"myCustomConnString": "Server=localhost,1433\\Catalog=myDatabase;Database=myDatabase;User=username;Password=MYSecurePWD;"
现在,我的迁移针对 docker 容器中的 SQL Server 运行。请注意,本文不包括使用Trusted_Connection=false
。我假设 false 是默认值。
【讨论】:
【参考方案2】:我遇到了同样的问题,只需删除即可 Trusted_Connection=True; 从连接字符串
【讨论】:
【参考方案3】:我按如下方式运行了连接字符串,它成功了
"ConnectionStrings":
"DevConnection": "Server=localhost,1433;Database=TarjetaCreditoDB;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=True;"
【讨论】:
【参考方案4】:我能够通过删除 Trusted_Connection 解决我的问题
【讨论】:
【参考方案5】:通过设置Trusted_Connection=False
【讨论】:
以上是关于如何在 Mac 上将 ASP.Net Core 连接到 SQL Server Docker 容器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net core 中获取项目的根目录。 Directory.GetCurrentDirectory() 在 Mac 上似乎无法正常工作
如何在 ASP.NET Core 生产服务器上禁用“尝试重新连接到服务器”消息
如何在 ASP.NET Core 生产服务器上禁用“尝试重新连接到服务器”消息
如何在不使用 EF 的情况下连接到 ASP.NET Core Web API 中的数据库?
如何从 asp.net core webapi 获取数据到连接到数据库的 angular 11.0.0。我试图这样做,但它返回空记录