Я получаю много различных вопросов в этой функции:Ошибки, приезжающие во время загрузки изображений на FTP
public static bool UploadToFTP(string strFileName, string strFolderName)
{
bool isUploaded = false;
string strFilename = string.Empty;
string strFtpURI = string.Empty;
string strFtpUserId = string.Empty;
string strFtpPassword = string.Empty;
byte[] buffer = null;
FileInfo oFileInfo = null;
FileStream oFileStream = null;
FtpWebRequest oFtpWebRequest = null;
try
{
strFilename = strFileName;
oFileInfo = new FileInfo(strFilename);
strFtpURI = Constants.FtpUri;
strFtpUserId = Constants.FtpUserID;
strFtpPassword = Constants.FtpPassword;
oFtpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(strFtpURI + "/" + strFolderName + "/" + oFileInfo.Name));
oFtpWebRequest.Credentials = new NetworkCredential(strFtpUserId, strFtpPassword);
oFtpWebRequest.Proxy = null;
oFtpWebRequest.KeepAlive = false;
oFtpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
oFtpWebRequest.UseBinary = true;
oFtpWebRequest.ContentLength = oFileInfo.Length;
int iBufferLength = 2084;
buffer = new byte[iBufferLength];
int iContentLength = 0;
oFileStream = oFileInfo.OpenRead();
try
{
iContentLength = oFileStream.Read(buffer, 0, iBufferLength);
using (Stream oStream = oFtpWebRequest.GetRequestStream())
{
while (iContentLength != 0)
{
oStream.Write(buffer, 0, iContentLength);
iContentLength = oFileStream.Read(buffer, 0, iBufferLength);
}
isUploaded = true;
FtpUpload.TotalKBFilesUploaded = FtpUpload.TotalKBFilesUploaded + (int)(oFileInfo.Length/1000);
}
}
catch (Exception ex)
{
}
finally
{
if (oFtpWebRequest != null)
{
oFtpWebRequest.Abort();
oFtpWebRequest = null;
}
if (buffer != null)
{
buffer = null;
}
if (oFileStream != null)
{
oFileStream.Close();
oFileStream.Dispose();
}
}
}
catch (Exception ex)
{
}
finally
{
oFileInfo = null;
}
return isUploaded;
}
Это загружает 1000s изображений на FTP, и это Митос называется в многопоточных образом.
Различные ошибки:
===================================== ==================
Сообщение: операция истекло
Трассировка Ошибка: в System.Net.FtpWebRequest.CheckError() в системе. Net.FtpWebRequest.GetRequestStream()
========================================================================================================================================== =================
Сообщение об ошибке: Не удается подключиться к удаленному серверу
трассировки Ошибка: в System.Net.FtpWebRequest.CheckError() в System.Net.FtpWebRequest.GetRequestStream()
=== ================================================== ==
Сообщение об ошибке: Основное соединение было закрыто: произошла непредвиденная ошибка при приеме.
трассировки Ошибка: в System.Net.FtpWebRequest.CheckError() в System.Net.FtpWebRequest.SyncRequestCallback (OBJ объекта) при System.Net.CommandStream.Abort (Исключение е) при System.Net.FtpWebRequest.FinishRequestStage (Шаг запроса) в System.Net.FtpWebRequest.GetRequestStream()
============================================================================================================================================================================= ==================================
Сообщение об ошибке: не удается записать данные в транспортное соединение: попытка подключения не удалась, должным образом реагировать после определенного периода времени или установленное соединение не удалось, поскольку подключенный хост не смог Зонд.
трассировка Ошибки: в System.Net.Sockets.NetworkStream.Write (байты [] буфер, Int32 смещения, размер Int32) при System.Net.FtpDataStream.Write (байты [] буфер, Int32 смещения, Int32 размера) =============================================================================================================== ======
Это несколько ошибок, исходящих из того же метода, который я получил из файла LOG.
Любая идея, что может быть причиной этого? Или мне нужно дать более подробную информацию?
Похоже, что вам нужно ** поговорить с вашим п/ж, ребята в вашей Org **. Я вижу, что все ошибки либо «проблемы с подключением n/w», либо «сервер не отвечает» правильно! – SridharVenkat