Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# 与SQL Server的连接在表面上失败,但在其他任何地方都不会_C#_Sql Server_Sqlclient - Fatal编程技术网

C# 与SQL Server的连接在表面上失败,但在其他任何地方都不会

C# 与SQL Server的连接在表面上失败,但在其他任何地方都不会,c#,sql-server,sqlclient,C#,Sql Server,Sqlclient,我一直在我的开发机器上开发我的UWP应用程序,到目前为止一切正常。所以我想在一个真正的平板电脑上用一个表面测试它 一旦我通过远程调试部署它,它就无法连接到在开发服务器上运行的内部SQL Server。我在我的应用程序中集成了一个查找功能,该功能可以向网络中的所有SQL Server浏览器实例广播,并且可以找到我们的服务器 但一旦我连接到它,我就会得到这个例外: “无法连接到SQL Server Browser。请确保已启动SQL Server Browser。” 找到stacktrace 内部异

我一直在我的开发机器上开发我的UWP应用程序,到目前为止一切正常。所以我想在一个真正的平板电脑上用一个表面测试它

一旦我通过远程调试部署它,它就无法连接到在开发服务器上运行的内部SQL Server。我在我的应用程序中集成了一个查找功能,该功能可以向网络中的所有SQL Server浏览器实例广播,并且可以找到我们的服务器

但一旦我连接到它,我就会得到这个例外:

“无法连接到SQL Server Browser。请确保已启动SQL Server Browser。”

找到stacktrace

内部异常是一个SocketException

消息显示指定的主机未知

显然与DNS问题有关。Stacktrace是

奇怪的是,这只发生在我的表面上。我可以告诉你几件事:

  • 曲面上已安装SQL Server,但SQL Server和浏览器服务均已禁用并停止
  • 防火墙已完全停用
  • surface不在我们的域中,但配置了静态IP以及正确的网关和DNS服务器
  • 浏览网络中可用的SQL实例可以正常工作并检索正确的结果
  • SQL Server正在作为命名实例运行,连接字符串是使用
    ConnectionStringBuilder
    类生成的,并且完全正确(与我机器上的连接字符串匹配)

我在这里有点迷路了。我不明白为什么我可以联系SQL Server浏览器,但我得到一个未找到的异常。但是,连接字符串是正确的。

您如何尝试使用SQL登录连接到SQL Server(我假设不是AD,正如您所说,Surface不在域中)。您能在SQL Server中的日志中看到连接尝试吗?如果没有,则连接无法连接到SQL Server;这意味着防火墙/网络配置问题。您声明“表面已安装SQL Server,但SQL Server和浏览器服务均已禁用并停止”;SQL Server服务不是在其他主机上运行吗?如果不是,并且您希望连接到本地实例,那么为什么服务没有运行?需要查看您的连接字符串。必须确定数据库使用的是Windows凭据还是SQL凭据。建议使用windows凭据(Integrated Security=true)。然后,您需要在本地和远程PC上设置一个组帐户,并让用户在这两台计算机上设置组帐户。对不起,我的坏消息。但你是对的,我使用的是SQL登录,没有广告。因此,我还禁用了连接字符串中的集成安全性。就像我说的,绳子没问题。它在我的机器上工作。本地SQL server已禁用并停止,因为我希望避免将其作为错误源。当然,这不应该是问题,因为我正在连接到一个命名实例(托管在另一台机器上)。我不得不禁用浏览器,因为我无法获取服务器,因为它阻塞了UDP端口。尽管如此,我不明白为什么没有连接。我只看到我从SQL Management Studio登录。显然根本没有建立连接(但异常已经告诉我们这一点)。