FtpWebRequest.Timeout Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.