FtpWebRequest.Timeout Eigenschaft

Definition

Ruft die Wartezeit in Millisekunden für eine Anforderung ab oder legt diese fest.Gets or sets the number of milliseconds to wait for a request.

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

Eigenschaftswert

Ein Int32 Wert, der die Anzahl der Millisekunden enthält, die gewartet werden soll, bevor für eine Anforderung ein Timeout auftritt. Der Standardwert ist Infinite.An Int32 value that contains the number of milliseconds to wait before a request times out. The default value is Infinite.

Ausnahmen

Der angegebene Wert ist kleiner als null (0) und ungleich Infinite.The value specified is less than zero and is not Infinite.

Für diese Eigenschaft wurde ein neuer Wert für eine Anforderung angegeben, die bereits ausgeführt wird.A new value was specified for this property for a request that is already in progress.

Beispiele

Im folgenden Codebeispiel wird diese Eigenschaft festgelegt.The following code example sets this property.

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 = dynamic_cast<FtpWebRequest^>(WebRequest::Create( serverUri ));
   request->Method = WebRequestMethods::Ftp::UploadFileWithUniqueName;

   // Don't set a time limit for the operation to complete.
   request->Timeout = System::Threading::Timeout::Infinite;

   // Copy the file contents to the request stream.
   const int bufferLength = 2048;
   array<Byte>^buffer = gcnew array<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 = dynamic_cast<FtpWebResponse^>(request->GetResponse());
   Console::WriteLine( "Upload status: {0}, {1}", response->StatusCode, response->StatusDescription );
   Console::WriteLine( "File name: {0}", response->ResponseUri );
   response->Close();
   return true;
}
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;
}

Hinweise

Wenn Sie einen unendlichen Wert angeben möchten, legen Sie die Timeout-Eigenschaft auf Infinite (-1) fest.To specify an infinite value, set the Timeout property to Infinite (-1). Dies ist der Standardwert.This is the default value.

Timeout ist die Anzahl von Millisekunden, die eine synchrone Anforderung, die mit der GetResponse-Methode erfolgt, auf eine Antwort wartet und die GetRequestStream Methode auf einen Datenstrom wartet.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. Wenn eine Ressource nicht innerhalb des Timeout Zeitraums antwortet, löst die Anforderung eine WebException aus, bei der die Status-Eigenschaft auf Timeoutfestgelegt ist.If a resource does not respond within the time-out period, the request throws a WebException with the Status property set to Timeout.

Das Ändern von Timeout nach dem Aufrufen der Methoden GetRequestStream, BeginGetRequestStream, GetResponseoder BeginGetResponse verursacht eine InvalidOperationException Ausnahme.Changing Timeout after calling the GetRequestStream, BeginGetRequestStream, GetResponse, or BeginGetResponse method causes an InvalidOperationException exception.

Eine Domain Name System (DNS)-Abfrage kann bis zu 15 Sekunden dauern, bis eine Rückgabe oder ein Timeout auftritt. Wenn Ihre Anforderung einen Hostnamen enthält, der aufgelöst werden muss, und Sie Timeout auf einen Wert weniger als 15 Sekunden festlegen, kann es 15 Sekunden oder länger dauern, bis ein WebException ausgelöst wird, um ein Timeout für Ihre Anforderung anzugeben.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.

Gilt für:

Siehe auch