Quando construímos um serviço WCF, basicamente criamos o serviço e os clientes que o acessam. Fazemos a distribuição dos clientes, sem nos preocuparmos com uma configuração que, as vezes, podem resultar em possíveis erros durante a execução.
Ao expor um serviço através de um binding que já traz segurança integrada (como é o caso do WSHttpBinding), há um comportamento especial em que ao enviar a mensagem do cliente para o serviço, a data/hora atual são incluídos dentro da requisição. Quando a mensagem chegar para o serviço, ele analisará essa data/hora antes de efetivamente executar o pedido. Para evitar possíveis ataques de replay, o WCF verifica se a data/hora de criação é maior ou menor que o permitido (o padrão é 5 minutos de tolerancia para mais ou para menos) e, caso seja, a requisição será rejeitada.
Para customizar esse valor, podemos recorrer a propriedade MaxClockSkew que aceita um TimeSpan que especifica a tolerancia máxima permitida. Para os bindings pré-definidos essa configuração não está acessível, tendo que fazer o uso de um customBinding caso necessitamos mudar a configuração padrão que, dificilmente será necessário, a menos que a sincronização dos relógios das duas ou mais máquinas envolvidas não seja possível.