MS SqlServer 建立连接后,查询数据时发生Failed to retrieve data for this request ,报指定的网络名不再可用错误-The specified network name is no longer available的错误。
花了几天时间查阅网上无数资料,发现很多网友也遇到此问题,但是没有找到解决方法。
经故障排查发现,查询8行数据时正常,查询数大于8行时,报指定的网络名不再可用错误-The specified network name is no longer available的错误。
修改Packet Size大小为512后,发现可正常查询道51调数据,怀疑时网络传输报文大小限制问题。
Tracert 目标服务器IP,没有发现网路异常。
检查了网络安全设置,防火墙设置,没有发现异常。
查看了通信日志,发现异常记录
目标服务器向客户端发送了tcp-reset报文。
猜测应该是目标服务器和客户端建立的握手连接发送变化导致。
修改连接字符串,开启 MARSS
MultipleActiveResultSets = true;
再次测试,竟然成功了。
至于为什么开启 MARS,网友可以自己思考,网上了解MARS资料。
写此文以供遇到此问题网友参考。