gpt4 book ai didi

c# - 底层连接已关闭 : The server committed a protocol violation. FTP

转载 作者:行者123 更新时间:2023-11-30 15:39:57 27 4
gpt4 key购买 nike

我正在使用下面的代码上传我的文件,它工作正常但有一段时间它抛出这个错误“底层连接已关闭:服务器违反协议(protocol)”并停止该过程,当我再次运行它时它上传文件解决任何问题。

我注意到一件事,如果我运行这个过程来上传多个文件,那么有时我会收到这个错误,如果我上传的文件少于 5 个,那么它就可以正常工作,知道我必须在哪里查看什么。

我在谷歌上搜索没有找到可靠的解决方案,甚至 msdn 博客之一说它是 FTPwebrequest 中的一个错误,但不确定。

环境:C# 4.0,IIS FTP 服务器。

提前致谢

                FileInfo fileInf = new FileInfo(filename);
FtpWebRequest reqFTP;

// Create FtpWebRequest object from the Uri provided
reqFTP = (FtpWebRequest)FtpWebRequest.Create
(new Uri(path + fileInf.Name));


// Provide the WebPermission Credintials
reqFTP.Credentials = new NetworkCredential(user, pwd);

// By default KeepAlive is true, where the control connection
// is not closed after a command is executed.
reqFTP.KeepAlive = false;


// Specify the command to be executed.
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

// Specify the data transfer type.
reqFTP.UseBinary = true;
reqFTP.Timeout = -1;
reqFTP.UsePassive = true;


// Notify the server about the size of the uploaded file
reqFTP.ContentLength = fileInf.Length;

// The buffer size is set to 2kb
int buffLength = 4096;
byte[] buff = new byte[buffLength];
int contentLen;

// Opens a file stream (System.IO.FileStream) to read the file
// to be uploaded
FileStream fs = fileInf.OpenRead();


try
{
// Stream to which the file to be upload is written
Stream strm = reqFTP.GetRequestStream();

// Read from the file stream 2kb at a time
contentLen = fs.Read(buff, 0, buffLength);

// Till Stream content ends
while (contentLen != 0)
{
// Write Content from the file stream to the FTP Upload
// Stream
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}

// Close the file stream and the Request Stream
strm.Close();
fs.Close();
}

回答

reqFTP.KeepAlive = false;设置为“True”以消除我的错误。

最佳答案

从 reqFTP 更改。KeepAlive = false;到“reqFTP.KeepAlive = True;”摆脱错误

关于c# - 底层连接已关闭 : The server committed a protocol violation. FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815919/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com