FtpWebRequest.Timeout Özellik

Tanım

İstek için beklenen milisaniye sayısını alır veya ayarlar.

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

Özellik Değeri

İstek Int32 zaman aşımına uğramadan önce bekleyebilecek milisaniye sayısını içeren bir değer. Varsayılan değer şeklindedir Infinite.

Özel durumlar

Belirtilen değer sıfırdan küçük ve değil Infinite.

Devam etmekte olan bir istek için bu özellik için yeni bir değer belirtildi.

Örnekler

Aşağıdaki kod örneği bu özelliği ayarlar.

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

Açıklamalar

Sonsuz bir değer belirtmek için özelliğini Infinite (-1) olarak ayarlayınTimeout. Varsayılan değer budur.

Timeout , yöntemiyle GetResponse yapılan zaman uyumlu isteğin yanıt beklediği ve GetRequestStream yöntemin bir akışı beklediği milisaniye sayısıdır. Bir kaynak zaman aşımı süresi içinde yanıt vermezse, istek özelliği olarak Timeoutayarlanmış bir WebExceptionStatus oluşturur.

, , GetResponseBeginGetRequestStreamveya BeginGetResponse yöntemi çağrıldıktan GetRequestStreamsonra değiştirilmesi Timeout özel duruma InvalidOperationException neden olur.

Etki Alanı Adı Sistemi (DNS) sorgusu döndürülmesi veya zaman aşımına uğrarsa 15 saniye kadar sürebilir. İsteğiniz çözüm gerektiren bir ana bilgisayar adı içeriyorsa ve 15 saniyeden kısa bir değere ayarlarsanız Timeout , isteğinizin zaman aşımını belirtmesi için bir WebException oluşturma işlemi 15 saniye veya daha uzun sürebilir.

Şunlara uygulanır

Ayrıca bkz.