gpt4 book ai didi

c# - 无法从 UWP 应用程序连接到 SQL Server Express 数据库

转载 作者:行者123 更新时间:2023-12-05 07:03:47 26 4
gpt4 key购买 nike

我有一个需要连接到 SQL Server Express 数据库的 UWP 应用程序。在我的开发箱上,我没有任何问题。

在客户端 PC 上,我安装了 SQL Server Express,创建了数据库,设置了用户和登录名。

当我运行应用程序并尝试连接到数据库时,出现错误:

A network-related or instance-specific error occurred while establishing a connection to SQL Server.
The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.
(provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)

我用来连接的代码是:

...
using (SqlConnection connection = new SqlConnection(ConnectionStringTextBox.Text.Trim()))
{
try
{
connection.Open();
MessageBox.Show("Connected successfully!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
...

在客户端计算机上的桌面应用程序上使用相同的代码,连接成功。

我已将 UWP 应用设置为使用 Windows 10 版本 1809。

客户端和我的dev box都是2004版本

Package.appxmanifest 文件检查了以下功能:

  • 企业认证
  • 互联网(客户端和服务器)
  • 互联网(客户端)
  • 专用网络(客户端和服务器)

Windows 防火墙打开了正确的端口。在 SSMS 中,我启用了允许远程连接,启用了 TCP。

我不知道我做错了什么或出了什么问题。同样的 UWP 应用程序在我的开发箱上运行良好。

如有任何建议,我们将不胜感激。

最佳答案

如果您尝试连接到同一台机器上的 SQL Server 实例,它将无法工作,因为 UWP applications are sandboxed and cannot connect to localhost over TCP/UDP - 而与远程机器的连接将会成功。 我认为这很愚蠢,但这是设计使然

作为解决方法,您可以将 SQL Server 配置为使用共享内存或命名管道,这些方法应该有效。

更新:

我忘了that there is now a Capability you can add to your AppX manifest to enable local-loopback connections (仅适用于 TCP,it doesn't work for UDP)。

关于c# - 无法从 UWP 应用程序连接到 SQL Server Express 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63125550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com