Baca dalam bahasa Inggris

Bagikan melalui


FtpWebRequest.Timeout Properti

Definisi

Mendapatkan atau mengatur jumlah milidetik untuk menunggu permintaan.

public override int Timeout { get; set; }

Nilai Properti

Nilai Int32 yang berisi jumlah milidetik untuk menunggu sebelum waktu permintaan habis. Nilai defaultnya adalah Infinite.

Pengecualian

Nilai yang ditentukan kurang dari nol dan bukan Infinite.

Nilai baru ditentukan untuk properti ini untuk permintaan yang sudah berlangsung.

Contoh

Contoh kode berikut mengatur properti ini.

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

Keterangan

Untuk menentukan nilai tak terbatas, atur properti ke TimeoutInfinite (-1). Ini adalah nilai default.

Timeout adalah jumlah milidetik yang dibuat permintaan sinkron dengan GetResponse metode menunggu respons dan bahwa GetRequestStream metode menunggu aliran. Jika sumber daya tidak merespons dalam periode waktu habis, permintaan akan melempar dengan properti yang WebExceptionStatus diatur ke Timeout.

Mengubah Timeout setelah memanggil GetRequestStreammetode , BeginGetRequestStream, GetResponse, atau BeginGetResponse menyebabkan InvalidOperationException pengecualian.

Kueri Sistem Nama Domain (DNS) mungkin membutuhkan waktu hingga 15 detik untuk kembali atau kehabisan waktu. Jika permintaan Anda berisi nama host yang memerlukan resolusi dan Anda mengatur Timeout ke nilai kurang dari 15 detik, mungkin perlu waktu 15 detik atau lebih sebelum WebException dilemparkan untuk menunjukkan waktu habis pada permintaan Anda.

Berlaku untuk

Produk Versi
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Lihat juga