C# UWP应用程序无法与远程实例SQL Server通信
我目前正在为现有数据库实施一个UWP程序。我以这篇文章为基础。 运行时,我收到一个异常: System.Data.SqlClient.SqlException“of System.Data.SqlClient.dll 例外情况:C# UWP应用程序无法与远程实例SQL Server通信,c#,sql-server,uwp,C#,Sql Server,Uwp,我目前正在为现有数据库实施一个UWP程序。我以这篇文章为基础。 运行时,我收到一个异常: System.Data.SqlClient.SqlException“of System.Data.SqlClient.dll 例外情况: 建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:TCP提供程序,错误:25-连接字符串无效) 这对我来说似乎很奇怪,因为具有相同连接字符串的
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:TCP提供程序,错误:25-连接字符串无效) 这对我来说似乎很奇怪,因为具有相同连接字符串的WPF应用程序工作正常。接下来,我决定在我的计算机上安装一个数据库实例,并将一些数据导出到本地数据库。出乎意料的是,在从以下位置替换连接字符串后:
Data Source=sqlserver\sqlexpress
到
数据源=。\sqlexpress
UWP程序从我电脑上的数据库中读取
我还阅读了本文,以确保远程数据库配置正确
正如我所说,WPF程序可以完美地与这个数据库一起工作。有什么方法可以检查UWP为什么不想与数据库通信
为了明确远程服务器原则上是否可用,我应用TNC命令的输出:
tnc sqlserver -p 1433 -I detailed
ComputerName : sqlserver
RemoteAddress : 192.168.10.11
RemotePort : 1433
NameResolutionResults : 192.168.10.11
MatchingIPsecRules :
NetworkIsolationContext : Private Network
InterfaceAlias : Ethernet
SourceAddress : 192.168.10.20
NetRoute (NextHop) : 0.0.0.0
TcpTestSucceeded : True
连接字符串如下所示:
private string connectionString=@“数据源=sqlserver\sqlexpress;初始目录=测试目录;用户ID=*;密码=*”;
在VS中使用相同的连接字符串。VS显示表的内容没有问题。我还可以在VS编辑器中删除或添加新行
我说的是远程数据库。在VS server Explorer中,我有一个连接到远程数据库的数据连接。我可以在VS中安全地编辑远程数据库数据(添加、删除和更新)。我看到了连接字符串,并最初将其用作UWP应用程序中的连接字符串。
您已经看过了。长话短说,您是否遵循了下面的建议 连接数据库时出现问题? 在大多数情况下,需要更改SQL Server配置的某些方面。如果您能够从其他类型的桌面应用程序(如Windows窗体或WPF应用程序)连接到数据库,请确保已为SQL Server启用TCP/IP。您可以在计算机管理控制台中执行此操作 检查是否正确遵循了解决方案的其余部分。您可能需要从Windows防火墙启用tcp端口 转到防火墙->入站规则->在规则中添加TCP:1433 此外,由于错误与连接字符串有关,因此请尝试仅使用服务器名称/ip/或主机名,而不使用服务器实例 您还可以添加端口号,看看是否适合您。添加端口号时,sql server会忽略实例名称(因为不同的实例需要不同的端口才能工作,所以它可以作为唯一标识符工作) 编辑:如何创建有效的连接字符串:
请看下面的答案:我在开始时指出了此链接。正如我所说,当数据库安装在我的计算机上时,此建议有效。我有此规则。即使防火墙关闭也不起作用。您是否尝试使用ip而不是连接字符串中的服务器名称?您是否也可以添加您的连接在没有任何敏感信息的情况下振铃,但保留实例名称作为示例?您是否也在服务器资源管理器中检查了visual studio生成的连接字符串?这肯定会起作用。@要测试的连接字符串。(它位于您的服务器资源管理器下)通过这种方式,您可以理解为什么无法使用应用程序连接到它。try@“Data Source=192.168.10.111433;初始目录=测试目录;用户ID=*;Password=*“;@AthanasiosKataras nopeHi,你能提供一个再现问题的最小演示吗?问题可能出在连接到服务器的代码上。@RichardZhang晚上好。我明天早上可以给你发一个演示。嗨,这是connect
SqlServer
,我可以帮你。