【问题标题】:Connect Azure Database through docker windows container通过 docker windows 容器连接 Azure 数据库
【发布时间】:2022-11-11 11:51:44
【问题描述】:

我有一个.net 框架 4.7.2 应用程序与 azure 数据库.我为此应用程序创建了一个 docker windows 容器。当我在本地机器上的 Docker 容器中启动这个应用程序时,它给出了一个错误:

[Win32Exception (0x80004005): 找不到网络路径]

[SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)]

连接字符串
connectionString="Data Source=tcp:servername.database.windows.net,1433;Database=databasename;User ID=testuser;Password=testpassword;Trusted_Connection=False;MultipleActiveResultSets=True;Encrypt=True" providerName="System.Data. SqlClient"

码头工人文件:

来自 mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019

ARG 源

WORKDIR /inetpub/wwwroot

复制 ./bin/Release/Publish/ 。

我的 IP 地址已添加到 azure 数据库中,当我从本地计算机通过 SQL 管理工作室连接时,它可以正常工作。此外,它工作正常 与视觉工作室。

我相信我的码头工人可以上网。当我在 docker 容器内 ping google.com 时,它会返回结果 ping google

C:\inetpub\wwwroot>ping google.com

使用 32 字节数据 ping google.com [172.217.166.14]:

来自 172.217.166.14 的回复:字节=32 时间=19ms TTL=118

来自 172.217.166.14 的回复:字节=32 时间=19ms TTL=118

来自 172.217.166.14 的回复:字节=32 时间=19ms TTL=118

来自 172.217.166.14 的回复:字节=32 时间=19ms TTL=118

172.217.166.14 的 Ping 统计信息:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

大约以毫秒为单位的往返时间:

Minimum = 19ms, Maximum = 19ms, Average = 19ms

C:\inetpub\wwwroot>

有人可以指导我如何将我的应用程序连接到 docker 容器内的 Azure 数据库吗?

【问题讨论】:

  • 我不认为错误消息来自使用该连接字符串的一段代码。 provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL ServerData Source=tcp:anyServerNameOrIpAddress; 中 TCP 驱动程序(非命名管道)的使用无关
  • 除了...要在 database.windows.net 上使用 Azure SQL 实例,特别是基于 Azure 的身份验证机制,您可能希望从旧的 System.Data.SqlClient 命名空间和类切换到现代且受更好支持的 Microsoft.Data.SqlClient命名空间和类。
  • 我检查了堆栈跟踪,错误发生在以下行:WebSecurity.InitializeDatabaseConnection("connectionstringName", "Databasename", "Id", "Name", autoCreateTables: false);我将尝试使用“Microsoft.Data.SqlClient”并更新您,但在我的本地机器(Visual Studio)上,代码正在使用“System.Data.SqlClient”
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: sql-server azure docker .net-4.8 windows-container


【解决方案1】:

我也遇到了同样的问题,请问你解决了吗?由于控制台中的“无效参数句柄”错误(在 Azure 应用服务 - Azure 门户中),我什至无法从 Azure 应用服务(在容器注册表中)执行 ping 操作。 :-(

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 2020-01-09
    • 1970-01-01
    • 2019-03-07
    • 2023-04-02
    • 2020-05-30
    • 1970-01-01
    相关资源
    最近更新 更多