You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 4.8控制台应用连接Azure SQL托管实例失败求助

Azure SQL托管实例公共端点连接超时问题排查与解决

关键排查与修复步骤

  • 验证端点地址与端口
    确认连接字符串中的服务器FQDN完全匹配Azure门户中SQL托管实例的公共端点地址,端口必须为3342,不可有误。

  • 测试网络连通性
    用PowerShell命令测试端口是否可达:

    Test-NetConnection mymi.public.XXXX.database.windows.net -Port 3342
    

    若测试失败,排查以下网络环节:

    • 本地防火墙/杀毒软件是否放行3342端口的出站流量
    • SQL托管实例所在VNet的NSG入站规则是否正确配置:源IP为本地机器公网IP,端口3342,协议TCP,动作设为允许
    • 企业级防火墙或代理是否拦截了该端口流量
  • 适配.NET 4.8的AD集成认证
    若使用Microsoft.Data.SqlClient,需注意:

    1. 安装4.0及以上版本的Microsoft.Data.SqlClient NuGet包(适配.NET Framework)
    2. 连接字符串中Authentication参数不要加单引号,修正为:
      Authentication=Active Directory Integrated
      
    3. 若本地机器未加入Azure AD域,改用Active Directory Password认证,连接字符串示例:
      Server=tcp:mymi.public.XXXX.database.windows.net,3342;Encrypt=True;TrustServerCertificate=False;Authentication=Active Directory Password;User ID=你的AAD账号@域名.com;Password=你的密码
      
  • 强制启用TLS 1.2
    .NET 4.8默认可能使用旧版TLS,而Azure SQL托管实例要求TLS 1.2及以上,需在代码开头添加:

    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
    

优化后的示例代码

using System;
using Microsoft.Data.SqlClient;

namespace MyConsoleApp
{
    public class Program
    {
        public static void Main()
        {
            // 强制使用TLS 1.2
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
            
            var connectionString = @"Server=tcp:mymi.public.XXXX.database.windows.net,3342;Persist Security Info=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication=Active Directory Integrated;";

            using (var conn = new SqlConnection(connectionString))
            {
                try
                {
                    conn.Open();
                    Console.WriteLine("连接成功!");
                    Console.WriteLine(conn.ConnectionString);
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"连接失败:{ex.Message}");
                    if (ex.InnerException != null)
                        Console.WriteLine($"错误详情:{ex.InnerException.Message}");
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:21:04