Alterar tempo limite para cada método ou chamada do WCF

Eu tenho um serviço "WCF" muito grande com muitos métodos diferentes.

A maioria desses métodos é "normal", portanto, eles devem responder em menos de 10 segundos, mas há vários métodos (8 ou 9) que são processos longos para que possam levar muito tempo para obter uma resposta.

O recebivetimeout e o sendtimeout foram definidos para 00:40:00 para garantir que eles tivessem tempo suficiente para realizar esses processos.

O problema é que às vezes temos problemas de conexão e os métodos "normais" demoram muito tempo para travar ...

Eles estão todos no mesmo serviço porque usam um modelo realmente grande e queriam reutilizar o modelo do serviço em todas as chamadas (não ter um PersonsService.User e um RobotsService.User ... porque eles são da mesma classe em diferentes Serviços).

A primeira solução que imagino é fazer um serviço diferente com esses processos longos e definir um tempo limite curto para o serviço normal ... mas eu deveria ter que fazer muitas alterações devido ao uso do modelo ...

Existe alguma maneira de definir um tempo limite diferente em cada chamada? Ou pelo método de serviço? Eu deveria dividir o serviço de qualquer maneira?

Desde já, obrigado!!

questionAnswers(1)

yourAnswerToTheQuestion