FtpWebRequest.Timeout Свойство

Определение

Возвращает или задает количество миллисекунда, ожидающее запроса.

public:
 virtual property int Timeout { int get(); void set(int value); };
public override int Timeout { get; set; }
member this.Timeout : int with get, set
Public Overrides Property Timeout As Integer

Значение свойства

Значение Int32 , содержащее количество миллисекундах, ожидающих ожидания до истечения времени ожидания запроса. Значение по умолчанию — Infinite.

Исключения

Указанное значение меньше нуля и не Infiniteявляется.

Для этого свойства было указано новое значение для запроса, который уже выполняется.

Примеры

Следующий пример кода задает это свойство.

public static bool UploadUniqueFileOnServer (Uri serverUri, string fileName)
{
    // The URI described by serverUri should use the ftp:// scheme.
    // It contains the name of the directory on the server.
    // Example: ftp://contoso.com.
    //
    // The fileName parameter identifies the file containing the data to be uploaded.

    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
    request.Method = WebRequestMethods.Ftp.UploadFileWithUniqueName;
    // Set a time limit for the operation to complete.
    request.Timeout = 600000;

    // Copy the file contents to the request stream.
    const int bufferLength = 2048;
    byte[] buffer = new byte[bufferLength];
    int count = 0;
    int readBytes = 0;
    FileStream stream = File.OpenRead(fileName);
    Stream requestStream = request.GetRequestStream();
    do
    {
        readBytes = stream.Read(buffer, 0, bufferLength);
        requestStream.Write(buffer, 0, bufferLength);
        count += readBytes;
    }
    while (readBytes != 0);

    Console.WriteLine ("Writing {0} bytes to the stream.", count);
    // IMPORTANT: Close the request stream before sending the request.
    requestStream.Close();
    FtpWebResponse response = (FtpWebResponse) request.GetResponse();
    Console.WriteLine("Upload status: {0}, {1}",response.StatusCode, response.StatusDescription);
    Console.WriteLine ("File name: {0}", response.ResponseUri);
    response.Close();
    return true;
}

Комментарии

Чтобы указать бесконечное значение, задайте Timeout для свойства Infinite значение (-1). Это значение по умолчанию.

Timeout — это количество миллисекунд, которое синхронный запрос, сделанный с GetResponse методом, ожидает ответа, и что GetRequestStream метод ожидает потока. Если ресурс не отвечает в течение периода ожидания, запрос создает WebException исключение со свойством, заданным Status для свойства Timeout.

Изменение Timeout после вызова методов GetRequestStream, BeginGetRequestStream, GetResponse или BeginGetResponse вызывает исключение InvalidOperationException.

Запрос системы доменных имен (DNS) может занять до 15 секунд для возврата или истечения времени ожидания. Если запрос содержит имя узла, требующее разрешения, и значение Timeout меньше 15 секунд, может потребоваться 15 секунд или более, прежде чем WebException будет создано время ожидания запроса.

Применяется к

См. также раздел