Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
Previous Versions
.NET Framework 2.0
System.Net
FtpWebRequest Class
 Timeout Property

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2005/.NET Framework 2.0

Other versions are also available for the following:
.NET Framework Class Library
FtpWebRequest.Timeout Property

Note: This property is new in the .NET Framework version 2.0.

Gets or sets the number of milliseconds to wait for a request.

Namespace: System.Net
Assembly: System (in system.dll)

Visual Basic (Declaration)
Public Overrides Property Timeout As Integer
Visual Basic (Usage)
Dim instance As FtpWebRequest
Dim value As Integer

value = instance.Timeout

instance.Timeout = value
C#
public override int Timeout { get; set; }
C++
public:
virtual property int Timeout {
    int get () override;
    void set (int value) override;
}
J#
/** @property */
public int get_Timeout ()

/** @property */
public void set_Timeout (int value)
JScript
public override function get Timeout () : int

public override function set Timeout (value : int)

Property Value

An Int32 value that contains the number of milliseconds to wait before a request times out. The default value is Infinite.
Exception typeCondition

ArgumentOutOfRangeException

The value specified is less than zero and is not Infinite.

InvalidOperationException

A new value was specified for this property for a request that is already in progress.

To specify an infinite value, set the Timeout property to Infinite (-1). This is the default value.

Timeout is the number of milliseconds that a synchronous request made with the GetResponse method waits for a response and that the GetRequestStream method waits for a stream. If a resource does not respond within the time-out period, the request throws a WebException with the Status property set to Timeout.

Changing Timeout after calling the GetRequestStream, BeginGetRequestStream, GetResponse, or BeginGetResponse method causes an InvalidOperationException exception.

A Domain Name System (DNS) query may take up to 15 seconds to return or time out. If your request contains a host name that requires resolution and you set Timeout to a value less than 15 seconds, it may take 15 seconds or more before a WebException is thrown to indicate a time-out on your request.

The following code example sets this property.

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

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Default value of FtpWebRequest.Timeout = 100,000 ms, not Infinite.      Darkthread   |   Edit   |   Show History
After tested the value in debug mode and checked the logic of FtpWebRequest with Lutz Roeder's .NET Reflector, I found the default value of FtpWebRequest.Timeout should be 0x186a0(100,000) ms, but not Infinite(-1).
Tags What's this?: Add a tag
Flag as ContentBug
Bug found in example code:      CBiTS   |   Edit   |   Show History
Line:
requestStream.Write(buffer, 0, bufferLength);

Should read:
requestStream.Write(buffer, 0, readBytes);
Tags What's this?: Add a tag
Flag as ContentBug
ContentBug      CBiTS   |   Edit   |   Show History
Line:
requestStream.Write(buffer, 0, bufferLength);

Should read:
requestStream.Write(buffer, 0, readBytes);
Tags What's this?: Add a tag
Flag as ContentBug
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker