FtpWebRequest.Timeout Property
Gets or sets the number of milliseconds to wait for a request.
Namespace: System.Net
Assembly: System (in System.dll)
| Exception | Condition |
|---|---|
| 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.
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 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.