FtpWebRequest ReqFTP = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + ftpServerIp + "/"));
            ReqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
            ReqFTP.UseBinary = true;
            ReqFTP.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
            ReqFTP.Credentials = new NetworkCredential(ftpUserName, ftpPwd);
            ReqFTP.KeepAlive = true;            using (FtpWebResponse response = (FtpWebResponse)ReqFTP.GetResponse())
            {            }如果服务端返回的消息是中文,这份代码肯定出错,据查是微软的一部BUG。但是现在很多服务器,比如一些虚拟空间,我们是不能左右虚拟空间服务商说要把登录返回的消息改为英文的。如果非要用.NET开发FTP客户端程序,又能针对中或英文的返回消息,有什么好的解决方案?

解决方案 »

  1.   


    http://hi.baidu.com/tewuapple/item/39524e104673b2473a176e12http://blog.sina.com.cn/s/blog_3f5223010100gihj.htmlhttp://blog.csdn.net/yefanqiu/article/details/1563904
      

  2.   

    我现在打开了你的三个连接之前,但是还没有看。我首先判断,你所谓的“据查是微软的一部BUG”是非常不负责任的断言。我觉得你应该找到真正比较权威的地方的资料,再传播“据查”这类话。然后我在看看这三个“博客”,看看它跟你说的“如果服务端返回的消息是中文,这份代码肯定出错”到底有多大关系?!
      

  3.   

    如果你想去查,我希望你首先懂得查一查FTP规范协议,看看人家实现的FTP到底算不算BUG?
      

  4.   

    谢谢sp1234大哥,细心,认真,严谨。不得不承认我对技术缺乏严谨的态度,还有对所描述的问题责任性不够。我想表达一个问题就是:连接并登录FTP服务器,如果是返回中文的欢迎消息,用.NET提供的FtpWebRequest类,就会出现“基础连接已经关闭:接收时发生错误”。 
      

  5.   


    不怀疑我已人云亦云。我再想表达一个疑问是为何FlashFXP不会出现这样的情况?我不知道是不是FlashFXP本身可以兼容规范以为的支持?
      

  6.   

    服务端 IIS 7.5/vsftpd 2.3.4
    客户端 .Net Framework 3.5/4.0
    全部通过。
    虽然看到的欢迎信息都是乱码,但是程序没有出错