在我开始提问之前的当前场景
-
一个 c# Winforms应用程序需要部署在我们的LAN上。
-
网络包含200多台运行Windows XP (&
具有相同的域/工作组。 不幸的是,整个网络中仍然存在一些混淆和IP冲突
网络仍然适用 ! !咳咳. .)
一个中央服务器(具有唯一名称&SQL Server 2008 R2
应用程序有一个规定来指定客户端机器上的连接字符串
应用程序验证这个字符串(open> close connection else异常)并存储在本地文件中。
我的问题是……
应用程序在检查阶段成功连接到服务器(打开>关闭连接),但是当有实际数据集要从服务器获取时失败。
- 在这种混乱的场景中,在连接字符串中,哪一种最可靠的方式来地址服务器?
即使我使用"sa"帐户,我也使用机器名称/IP来寻址服务器
当你说你的应用程序"失败时,有实际的数据集要提取",你的意思是什么?误差是多少?将您的SqlDataAdapter.Fill()
方法封装在try catch块中,并将该错误输出到日志或GUI中,以便快速调试。错误说明了什么?是网络问题还是实例问题?
应用程序成功连接到服务器您是在谈论作为物理机器的服务器,还是在谈论您正在尝试连接的数据库所在的SQL server实例?
这是一个很大的"陷阱"。如果您使用的是命名实例,那么您需要确保SQL Server Browser服务在存放SQL Server实例的服务器上运行。当通过端口1434进行连接时,该服务会告诉应用程序指定的实例正在侦听哪个动态端口。
另外,您的连接字符串可能有一些问题。
长话短说,几乎不可能告诉你的问题是什么,只有很少的信息。这里所有的故障排除都只是猜测。请给我更多的信息。
编辑:如果你的网络上有一个DHCP/DNS服务器,那么我不明白为什么你应该得到"混乱"工作站网络问题,至少与IP分配和名称解析。您的工作站需要能够解析服务器名称以访问它。但听起来这不是你的问题