Sdílet prostřednictvím


FtpWebRequest.Timeout Vlastnost

Definice

Získá nebo nastaví počet milisekund čekání na požadavek.

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

Hodnota vlastnosti

Hodnota Int32 , která obsahuje počet milisekund, které se mají počkat, než vyprší časový limit požadavku. Výchozí hodnota je Infinite.

Výjimky

Zadaná hodnota je menší než nula a není Infinite.

Pro tuto vlastnost byla zadána nová hodnota pro požadavek, který již probíhá.

Příklady

Následující příklad kódu nastaví tuto vlastnost.

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;
}

Poznámky

Chcete-li zadat nekonečnou hodnotu, nastavte Timeout vlastnost Infinite na (-1). Toto je výchozí hodnota.

Timeout je počet milisekund, které synchronní požadavek provedený metodou GetResponse čeká na odpověď a že GetRequestStream metoda čeká na datový proud. Pokud prostředek neodpovídá během časového limitu, požadavek vyvolá vlastnost nastavenou WebExceptionStatus na Timeouthodnotu .

Změna Timeout po volání metod GetRequestStream, BeginGetRequestStream, GetResponse, nebo BeginGetResponse vyvolá výjimku InvalidOperationException.

Vrácení nebo vypršení časového limitu dotazu DNS (Domain Name System) může trvat až 15 sekund. Pokud váš požadavek obsahuje název hostitele, který vyžaduje překlad a vy jste nastavili Timeout hodnotu menší než 15 sekund, může trvat 15 sekund nebo déle, než WebException se vyvolá upozornění na vypršení časového limitu požadavku.

Platí pro

Viz také