在往SQL2005上导入数据的时候报错:“远程主机强迫关闭了一个现有的连接”

yinsuxia 2010-07-27 10:48:41

从服务器上往本地的SQL2005上导入数据的时候报错:“远程主机强迫关闭了一个现有的连接”
以下是报错信息:
Message
Executed as user: NT AUTHORITY\SYSTEM. Session Provider: Physical connection is not usable [xFFFFFFFF]. [SQLSTATE 42000] (Error 65535) Session Provider: Physical connection is not usable [xFFFFFFFF]. [SQLSTATE 42000] (Error 65535) TCP Provider: 远程主机强迫关闭了一个现有的连接。 [SQLSTATE 42000] (Error 10054) OLE DB provider "SQLNCLI" for linked server "BoxLogServer" returned message "Protocol error in TDS stream". [SQLSTATE 01000] (Error 7412) OLE DB provider "SQLNCLI" for linked server "BoxLogServer" returned message "Communication link failure". [SQLSTATE 01000] (Error 7412) OLE DB provider "SQLNCLI" for linked server "BoxLogServer" returned message "Communication link failure". [SQLSTATE 01000] (Error 7412) OLE DB provider "SQLNCLI" for linked server "BoxLogServer" returned message "Communication link failure". [SQLSTATE 01000] (Error 7412). The step failed.
这是为什么呢?
要如何解决呢?
...全文
1280 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Austindatabases 2010-08-19
  • 打赏
  • 举报
回复
你需要做的

1 请确认你导出导入数据库的服务启动用户是谁,最好不要使用LOCALSYSTEM 作为 sql server service

的启动用户,你需要在windows的系统服务中查看 控制你两方的SQL SERVER SERVICE 是不是LOCALSYSTEM

它不具有网络权限所以最好用 域用户或本地组管理员账户

2 请查看你的SQL SERVER AGENT的用户是不是也存在类似问题

一般改变后问题应该能解决
lansecheng 2010-08-18
  • 打赏
  • 举报
回复
sql应该是基于tcp协议的 远程主机强迫关闭连接,你看看服务端是否还在监听
yinsuxia 2010-07-29
  • 打赏
  • 举报
回复
顶~~~
永生天地 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 htl258 的回复:]
在公司一项目的UDP消息服务开发中时不时的会遇到这样一个问题:在UDP通信过程中,如果客户端中途断开,服务器会收到一个SocketException,错误ID为10054,描述是“远程主机强迫关闭了一个现有的连接”,紧接着的事就可怕了,UDP服务终止监听,所有客户端都受到了影响。也就是说一个客户端引起的异常导致了整个系统的崩溃。这个问题可是太严重了。

地球人都知道,UDP是无连接的,怎么会出……
[/Quote]
完全没看懂
htl258_Tony 2010-07-27
  • 打赏
  • 举报
回复
在公司一项目的UDP消息服务开发中时不时的会遇到这样一个问题:在UDP通信过程中,如果客户端中途断开,服务器会收到一个SocketException,错误ID为10054,描述是“远程主机强迫关闭了一个现有的连接”,紧接着的事就可怕了,UDP服务终止监听,所有客户端都受到了影响。也就是说一个客户端引起的异常导致了整个系统的崩溃。这个问题可是太严重了。

地球人都知道,UDP是无连接的,怎么会出现这个异常呢?百度了一圈,发现有这个问题的现象还不少,可就是没有一个有效的回复。再GOOGLE一圈,有点眉目了。找到了一个微软的解释和一个DOTNET的解决方法:

微软的解释:http://support.microsoft.com/kb/263823

DOTNET的处理方法:http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic1887.aspx

不过处理方法似乎对参数的设置不太正确:
byte[] optionInValue = { Convert.ToByte(true) };
byte[] optionOutValue;

按照这样设置还是会抛出该异常。
首先,根据微软的解释,optionInValue 传入的应该是false,而不是true;
其次,根据微软的解释,optionOutValue应该是一个DWORD值,不应不赋值,或设为null。

根据以上两点,将以上两句改为:
byte[] optionInValue = { Convert.ToByte(false) };
byte[] optionOutValue = new byte[4];

经过测试,模拟500个用户进行登录、收发消息、注销、异常退出、再连接,均没有再抛出该异常。服务表现稳定。
http://www.cnblogs.com/zhuangxuqiang/archive/2009/04/17/1437926.html
永生天地 2010-07-27
  • 打赏
  • 举报
回复
帮顶,我也很想知道
yinsuxia 2010-07-27
  • 打赏
  • 举报
回复
难道没人知道吗???
billpu 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yinsuxia 的回复:]

引用 3 楼 htl258 的回复:
在公司一项目的UDP消息服务开发中时不时的会遇到这样一个问题:在UDP通信过程中,如果客户端中途断开,服务器会收到一个SocketException,错误ID为10054,描述是“远程主机强迫关闭了一个现有的连接”,紧接着的事就可怕了,UDP服务终止监听,所有客户端都受到了影响。也就是说一个客户端引起的异常导致了整个系统的崩溃。这个问题可是太严重了。

……
[/Quote]
udp是非保障的用户数据协议,只管发不保证对方能肯定收到
tcp相反是提供可靠的数据传输,要求目标成功收到数据时发回一个确认信号
很少有程序基于udp的了,象楼上有说qq好像是udp4000,没记错的话.效率是提高很多的比起tcp
如果您的程序没有用到udp,我建议从补丁和网络的角度去看看,也有可能有蠕虫病毒
yinsuxia 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 htl258 的回复:]
在公司一项目的UDP消息服务开发中时不时的会遇到这样一个问题:在UDP通信过程中,如果客户端中途断开,服务器会收到一个SocketException,错误ID为10054,描述是“远程主机强迫关闭了一个现有的连接”,紧接着的事就可怕了,UDP服务终止监听,所有客户端都受到了影响。也就是说一个客户端引起的异常导致了整个系统的崩溃。这个问题可是太严重了。

地球人都知道,UDP是无连接的,怎么会出……
[/Quote]
我也没看懂,我的系统是server2003的

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧