基于.Net Framework 2.0的客户端,在开发用的VISTA和Server 2008上一切正常,放到客户机器上,有的总是报错
"The server committed a protocol violation"(中文系统是"基础连接已经关闭: 服务器提交了协议冲突").
后来发现是由于FTP服务器返回了非法字符,导致 FtpWebRequest 报错.
但是为什么只会在部分XP用户上出现呢?
打开目录C:\Windows\Microsoft.NET\Framework\v2.0.50727,发现system.dll版本存在问题.
Server 2008的版本号为2.0.50727.3053.
Windows XP的版本号为2.0.50727.42.
先只是把2008的system.dll拷贝过去,无效.
后来想到.Net Framework 2.0是有SP1补丁包的.
解决方法:
打上.Net Framework 2.0 SP1补丁,报错解决.
PS.打了.Net Framework 2.0 SP1补丁的system.dll版本号变成了2.0.50727.1433.(还是比2.0.50727.3053低.不过FtpWebRequest已经没问题了)
虽然解决了,但是问题是,不能强制每个客户去更新.Net Framework 2.0 SP1,郁闷中