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

Azure VM迁移后.NET Core 1.1应用无法连接本地SQL Server数据库

排查.NET Core 1.1连接新Azure VM(Win2016)数据库失败的问题

我之前处理过不少Azure VM迁移后数据库连接失败的情况,结合你的场景,咱们一步步来定位问题:

  • 先验证网络连通性
    首先得确认你的应用所在服务器(不管是原Win2012R2还是新Win2016)能不能访问新VM的1433端口:

    • 用telnet xxxxxx.australiasoutheast.cloudapp.azure.com 1433测试,如果连不上,先检查Azure网络安全组(NSG)的入站规则,确保1433端口对应用所在的IP/网段开放;同时检查Win2016服务器的本地防火墙,是否允许SQL Server的TCP流量通过。
    • 也可以用ping xxxxxx.australiasoutheast.cloudapp.azure.com确认FQDN解析是否正确,有没有指向错误的VM。
  • 检查SQL Server实例配置
    登录到Win2016的SQL Server:

    • 打开SQL Server配置管理器,找到SQL Server网络配置 → 对应实例的TCP/IP,确保状态是启用;双击TCP/IP,在IP地址标签页里,确认IPAll的TCP端口是1433(和连接字符串里的一致)。
    • 确认SQL Server服务已经启动,并且允许远程连接(在SSMS里右键实例→属性→连接,勾选“允许远程连接到此服务器”)。
  • 核对连接字符串细节
    你给出的连接字符串:

    "AuthenticationConnection": "Server=xxxxxx.australiasoutheast.cloudapp.azure.com,1433; Database=xxxxxx; User Id=xxxxxx; Password=xxxxxxx;"
    
    • 确认Database字段的名称和新服务器上的数据库名称完全一致,注意SQL Server的 collation如果是区分大小写的,大小写错误会导致找不到数据库。
    • 确认User Id对应的登录账号在新SQL Server实例上存在,并且已经映射到目标数据库,拥有至少db_datareader/db_datawriter权限(或者必要的访问权限)。可以在SSMS的“安全性→登录名”里找到该账号,右键→属性→用户映射,勾选目标数据库并设置权限。
  • 考虑.NET Core 1.1的兼容性
    .NET Core 1.1是比较旧的版本了,它默认的SQL驱动可能和SQL Server 2016存在兼容性问题:

    • 检查项目里的SQL相关NuGet包(比如System.Data.SqlClient或者Microsoft.Data.SqlClient),尝试更新到兼容.NET Core 1.1的最新版本(注意不要超过.NET Core 1.1支持的包版本范围)。
  • 确认数据库是否真的存在于新服务器
    最后再确认一遍:你要连接的数据库是不是已经成功迁移到Win2016的SQL Server上了?有没有可能迁移过程中出错,数据库没创建成功?在SSMS里直接查看新服务器的数据库列表,确保目标数据库存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:57:36