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

.NET MAUI安卓应用模拟器数据库连接正常,真机报错求助

解决.NET MAUI安卓真机连接SQL Server的常见问题

针对你遇到的真机连接失败问题,结合测试环境的特殊性,从以下几个方向排查:

1. 安卓真机网络与权限配置

  • 确认网络环境一致性:确保安卓真机和SQL Server处于同一局域网(若使用本地测试服务器);移动数据网络下需完成端口转发且公网IP可正常访问。
  • 检查安卓网络权限:在AndroidManifest.xml中确认添加必要权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • 允许明文流量:安卓9(API 28)及以上默认禁止明文网络请求,若SQL Server未启用加密,需在AndroidManifest.xml的application标签添加:
    android:usesCleartextTraffic="true"
    

2. SQL Server与网络防火墙细节

  • 强制使用IP和端口:连接字符串中直接使用服务器IP而非机器名(真机可能无法解析局域网主机名),并明确指定端口:
    "Server=192.168.x.x,1433;Database=YourDB;User Id=xxx;Password=xxx;Encrypt=False;Connection Timeout=120"
    
  • 验证端口与防火墙:
    • 确认SQL Server TCP/IP协议监听1433端口(在SQL Server配置管理器中查看TCP/IP的IP地址列表,确保TCP Port设为1433)。
    • 服务器防火墙需开放TCP 1433端口(若使用命名实例,还要开放UDP 1434端口并启动SQL Server Browser服务)。
  • 关闭加密测试:临时在连接字符串中添加Encrypt=False;TrustServerCertificate=True,排除加密握手导致的预登录错误。

3. 真机网络连通性测试

在安卓真机上通过终端工具(如Termux)执行以下命令,验证基础连通性:

  • 测试服务器可达性:ping 192.168.x.x
  • 测试端口开放:telnet 192.168.x.x 1433 或 nc -zv 192.168.x.x 1433
    如果ping不通或端口无法连接,优先排查网络路由、防火墙拦截问题。

4. .NET MAUI安卓特定适配

  • 禁用硬件加速(临时测试):部分设备的硬件加速可能影响网络请求,在AndroidManifest.xml的application标签添加:
    android:hardwareAccelerated="false"
    
  • 更新SQL Client依赖:确保项目中使用的Microsoft.Data.SqlClient或System.Data.SqlClient是最新稳定版本,旧版本可能存在安卓平台兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:40:02