我开始提问之前的当前情景
需要在 LAN 上部署 C#Winforms应用程序。
该网络包含 200台运行Windows XP(及以上版本)且具有相同域/工作组的计算机。
不幸的是,整个网络仍然存在一些混乱和 IP冲突。
网络仍在运作 !! ...(哼...)
中央服务器(具有唯一名称和IP)托管数据库( SQL Server 2008 R2 )
应用程序可以在客户端计算机上指定 connectionstring
应用验证此字符串(打开>关闭连接其他例外)并存储在本地文件中。
现在,我的问题是......
应用程序在检查阶段成功连接到服务器(打开>关闭连接),但是当要从服务器获取实际数据集时失败。
即使我使用“sa”帐户,我仍然使用计算机名称/ IP 来解决服务器
答案 0 :(得分:1)
当你说你的应用程序“在获取实际数据集时失败”时,你的意思是什么?错误是什么?将您的SqlDataAdapter.Fill()
方法封装在try catch块中,并将该错误输出到日志或GUI以进行快速调试。这个错误说的是什么?它是网络还是实例相关的问题..?
应用程序成功连接到服务器 您是在谈论服务器作为物理机器,还是在谈论容纳您尝试连接的数据库的SQL Server实例?
这是一个很大的“陷阱”。如果您使用的是命名实例,则需要确保SQL Server Browser服务正在包含SQL Server实例的服务器上运行。这是通过端口1434到达时通知应用程序命名实例正在侦听的动态端口的服务。
此外,您的连接字符串可能存在一些问题。
长话短说,几乎不可能用很少的特定信息判断你的问题是什么。这只是猜测故障排除。请给我更多信息。
编辑:如果您的网络上有DHCP / DNS服务器,那么我不明白为什么您应该“弄乱”工作站网络问题,至少在IP分配和名称解析方面。您的工作站需要能够解析服务器名称才能到达它。但这听起来不是你的问题。