Partager via


FtpWebRequest.Timeout Propriété

Définition

Obtient ou définit le nombre de millisecondes à attendre pour une demande.

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

Valeur de propriété

Valeur Int32 qui contient le nombre de millisecondes à attendre avant qu’une requête expire. La valeur par défaut est Infinite.

Exceptions

La valeur spécifiée est inférieure à zéro et n’est pas Infinite.

Une nouvelle valeur a été spécifiée pour cette propriété pour une demande déjà en cours.

Exemples

L’exemple de code suivant définit cette propriété.

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

Remarques

Pour spécifier une valeur infinie, définissez la Timeout propriété Infinite sur (-1). Il s’agit de la valeur par défaut.

Timeout est le nombre de millisecondes qu’une requête synchrone effectuée avec la GetResponse méthode attend une réponse et que la GetRequestStream méthode attend un flux. Si une ressource ne répond pas dans le délai d’attente, la requête lève une WebExceptionStatus propriété définie sur Timeout.

La modification de Timeout après l’appel de la méthode GetRequestStream, BeginGetRequestStream, GetResponse ou BeginGetResponse entraîne une exception InvalidOperationException.

Une requête DNS (Domain Name System) peut prendre jusqu’à 15 secondes pour retourner ou expirer. Si votre demande contient un nom d’hôte qui nécessite une résolution et que vous définissez Timeout sur une valeur inférieure à 15 secondes, il peut prendre 15 secondes ou plus avant qu’une WebException valeur soit levée pour indiquer un délai d’attente sur votre demande.

S’applique à

Voir aussi