FtpWebRequest.Timeout Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger antalet millisekunder som ska vänta på en begäran.
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
Egenskapsvärde
Ett Int32 värde som innehåller antalet millisekunder som ska vänta innan en begäran överskrids. Standardvärdet är Infinite.
Undantag
Det angivna värdet är mindre än noll och är inte Infinite.
Ett nytt värde har angetts för den här egenskapen för en begäran som redan pågår.
Exempel
I följande kodexempel anges den här egenskapen.
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;
}
Kommentarer
Om du vill ange ett oändligt värde anger du Timeout egenskapen till Infinite (-1). Det här är standardvärdet.
Timeout är antalet millisekunder som en synkron begäran som görs med GetResponse metoden väntar på ett svar och att GetRequestStream metoden väntar på en ström. Om en resurs inte svarar inom tidsgränsen genererar begäran en WebException med Status egenskapen inställd på Timeout.
Om du ändrar Timeout efter att ha anropat GetRequestStream-metoden, BeginGetRequestStream, GetResponse eller BeginGetResponse orsakar ett InvalidOperationException undantag.
En DNS-fråga (Domain Name System) kan ta upp till 15 sekunder att returnera eller överskrida tidsgränsen. Om din begäran innehåller ett värdnamn som kräver lösning och du anger Timeout ett värde som är mindre än 15 sekunder kan det ta 15 sekunder eller mer innan ett WebException utlöses för att indikera en tidsgräns för din begäran.