Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP应用程序无法与远程实例SQL Server通信_C#_Sql Server_Uwp - Fatal编程技术网

C# UWP应用程序无法与远程实例SQL Server通信

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-连接字符串无效) 这对我来说似乎很奇怪,因为具有相同连接字符串的

我目前正在为现有数据库实施一个UWP程序。我以这篇文章为基础。

运行时,我收到一个异常:

System.Data.SqlClient.SqlException“of System.Data.SqlClient.dll

例外情况:
建立与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
,我可以帮你。