使用C#连接局域网内SQL Server远程数据库时遇连接错误
解决SQL Server远程连接异常的步骤
针对你遇到的System.Data.SqlClient.SqlException连接错误,按以下步骤排查:
1. 确认SQL Server服务运行状态
- 在目标数据库机器上,打开
services.msc(按Win+R输入命令),找到SQL Server服务(默认实例是MSSQLSERVER,命名实例是MSSQL$[实例名]),确保服务处于正在运行状态。如果没启动,右键启动服务。
2. 配置SQL Server允许远程连接
- 打开SQL Server配置管理器:
- 展开「SQL Server网络配置」,选择对应实例的「协议」,确保TCP/IP协议已启用。
- 右键TCP/IP → 属性,切换到「IP地址」标签:
- 拉到最下方的「IPAll」,确认TCP端口为
1433(默认端口,若修改过需记住此端口)。 - 确保所有IP地址的「已启用」设置为「是」。
- 拉到最下方的「IPAll」,确认TCP端口为
- 重启SQL Server服务,让配置生效。
3. 检查防火墙规则
- 目标机器的Windows防火墙需允许SQL Server的端口(默认1433)通行:
- 打开「Windows Defender防火墙」→ 「高级设置」→ 「入站规则」。
- 创建新规则,选择「端口」,输入
1433(或自定义端口),允许连接。 - 也可临时关闭防火墙进行测试,若能连接则说明是防火墙拦截问题。
4. 修正连接字符串配置
- 实例名称问题:如果目标SQL Server是命名实例,连接字符串需改为:
若使用自定义端口,需添加端口号:connectionString = "Server=192.168.10.10\\实例名;Database=CALIDAD_DB_KPI; integrated security= true";connectionString = "Server=192.168.10.10,自定义端口;Database=CALIDAD_DB_KPI; integrated security= true"; - 身份验证问题:你使用的是Windows集成身份验证(
integrated security=true),需满足:- 客户端机器与数据库机器在同一域环境,或客户端登录用户在数据库机器有对应本地账户,且该账户已被授予SQL Server登录权限。
- 若为工作组环境,建议改用SQL身份验证,修改连接字符串:
同时确保SQL Server已启用混合身份验证模式。connectionString = "Server=192.168.10.10;Database=CALIDAD_DB_KPI;User ID=你的SQL账户;Password=你的密码;";
5. 测试网络连通性
- 在客户端机器上执行以下命令,排查网络问题:
- 测试IP连通性:
ping 192.168.10.10,若不通则检查网络配置(如IP地址、子网掩码、网关)。 - 测试端口连通性:
telnet 192.168.10.10 1433,若无法连接则说明端口被拦截或SQL Server未监听该端口。
- 测试IP连通性:
内容的提问来源于stack exchange,提问作者Francisco Javier Espinosa L
相关产品推荐
相关产品推荐

