O que não está claro, mas acho que você está perguntando implicitamente, é se é possível configurar no lado do servidor ou não o tempo limite de todas as chamadas que demoram mais de um minuto para serem processadas. Isso não é possível
gravidThoughts
Respostas:
196
Você está se referindo ao servidor ou ao cliente?
Para um cliente, você deseja ajustar o atributo sendTimeout de um elemento de ligação. Para um serviço, você deseja ajustar o atributo receiveTimeout de uma ligação elenente.
No menu Ferramentas do Visual Studio 2008 (ou 2005, se você tiver o material certo do WCF instalado), há uma opção chamada 'Editor de configuração de serviço do WCF'.
A partir daí, você pode alterar as opções de ligação para o cliente e os serviços, uma dessas opções será para tempos limite.
publicstaticvoidMain(){Uri baseAddress =newUri("http://localhost/MyServer/MyService");try{ServiceHost serviceHost =newServiceHost(typeof(CalculatorService));WSHttpBinding binding =newWSHttpBinding();
binding.OpenTimeout=newTimeSpan(0,10,0);
binding.CloseTimeout=newTimeSpan(0,10,0);
binding.SendTimeout=newTimeSpan(0,10,0);
binding.ReceiveTimeout=newTimeSpan(0,10,0);
serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress);
serviceHost.Open();// The service can now be accessed.Console.WriteLine("The service is ready.");Console.WriteLine("Press <ENTER> to terminate service.");Console.WriteLine();Console.ReadLine();}catch(CommunicationException ex){// Handle exception ...}}
Respostas:
Você está se referindo ao servidor ou ao cliente?
Para um cliente, você deseja ajustar o atributo sendTimeout de um elemento de ligação. Para um serviço, você deseja ajustar o atributo receiveTimeout de uma ligação elenente.
Obviamente, você precisa mapear o terminal desejado para essa ligação específica.
fonte
receiveTimeout
lado do servidor, governa a determinação da ociosidade para ligações baseadas em sessão. Por exemplo, o servidor não usará essa configuração para ligações basicHTTP. Você tem que rolar seus próprios limites de tempo de processamento do lado do servidor para WCFNo menu Ferramentas do Visual Studio 2008 (ou 2005, se você tiver o material certo do WCF instalado), há uma opção chamada 'Editor de configuração de serviço do WCF'.
A partir daí, você pode alterar as opções de ligação para o cliente e os serviços, uma dessas opções será para tempos limite.
fonte
Tempos diferentes significam coisas diferentes. Quando você está trabalhando no cliente ... provavelmente está olhando principalmente para o SendTimeout - verifique esta referência - explicação maravilhosa e relevante: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread / 84551e45-19a2-4d0d-bcc0-516a4041943d /
fonte
Você pode escolher duas maneiras:
1) Por código no cliente
2) Pelo WebConfig em um servidor web
Para mais detalhes, veja as documentações oficiais
Configurando valores de tempo limite em uma ligação
Classe WSHttpBinding
fonte
Além dos tempos limite de ligação (que estão em
Timespan
s), você também pode precisar disso. Isso é em segundos.fonte