如何解决UWP应用连接远程SQL Server时的TCP Provider错误40?
针对UWP应用无法连接远程SQL Server的解决办法
检查UWP应用网络权限
UWP应用默认受网络权限限制,需在Package.appxmanifest中配置网络访问权限:- 打开manifest文件,切换到「功能」标签,勾选「专用网络(客户端和服务器)」和「Internet(客户端)」(根据服务器网络环境选择);
- 或直接编辑manifest的XML内容,添加以下节点:
<Capabilities> <Capability Name="internetClient" /> <Capability Name="privateNetworkClientServer" /> </Capabilities>
显式指定TCP协议与端口
UWP的SQL客户端可能默认协议与SSMS不同,修改连接字符串,强制使用TCP协议并指定端口(默认1433):public static string DefaultConnection { get; } = "Server=172.28.17.3,1433; Database=kcsDB; User ID=QuadM; Password=**********; MultipleActiveResultSets=true; Network Library=DBMSSOCN; Connection Timeout=30";同时确认SQL Server配置管理器中,TCP/IP协议已启用,对应IP的端口设置正确,重启SQL Server服务生效。
排查防火墙规则
- 服务器端:确保防火墙允许目标端口(如1433)的入站连接;
- 客户端:检查Windows Defender防火墙的出站规则,添加允许UWP应用访问
172.28.17.3:1433的规则,避免本地防火墙拦截UWP的网络请求。
更新SQL客户端库
若使用的是旧版System.Data.SqlClient,建议替换为Microsoft.Data.SqlClient,更新NuGet包至最新版本后重新测试连接,UWP对新版客户端的兼容性更好。验证用户权限与连接测试
在SSMS中再次使用QuadM账号远程连接目标SQL Server,确认该账号拥有kcsDB数据库的访问权限,且无IP限制或登录失败次数限制。
内容的提问来源于stack exchange,提问作者milad
相关产品推荐
相关产品推荐

