FtpWebRequest.Timeout Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o número de milissegundos para esperar por um pedido.
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
Valor de Propriedade
Um valor que contém o número de milissegundos a esperar antes de um pedido expirar Int32 . O valor padrão é Infinite.
Exceções
O valor especificado é menor que zero e não Infiniteé .
Foi especificado um novo valor para esta propriedade para um pedido que já está em curso.
Exemplos
O seguinte exemplo de código define esta propriedade.
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;
}
Observações
Para especificar um valor infinito, defina a Timeout propriedade para Infinite (-1). Este é o valor padrão.
Timeout é o número de milissegundos em que um pedido síncrono feito com o GetResponse método espera uma resposta e que o GetRequestStream método espera por um fluxo. Se um recurso não responder dentro do período de time-out, o pedido lança um WebException com a Status propriedade definida como Timeout.
Alterar Timeout após chamar os métodos GetRequestStream, BeginGetRequestStream, GetResponse ou BeginGetResponse causa uma exceção InvalidOperationException.
Uma consulta ao Sistema de Nomes de Domínio (DNS) pode demorar até 15 segundos a ser devolvida ou a expirar. Se o seu pedido contiver um nome de host que requer resolução e definir Timeout um valor inferior a 15 segundos, pode demorar 15 segundos ou mais até que a WebException seja lançado para indicar um time-out no seu pedido.