Operações One-Way com WCF
Olá pessoal,
Em alguns cenários, o processamento de um serviço pode ser demorado e pode ser necessário liberar o cliente para continuar o seu processamento enquanto o serviço trabalha as informações em background. Em outros cenários, o cliente simplesmente não necessita de um retorno do término do processamento, ele simplesmente precisa de uma garantia que a solicitação chegou no servidor e confia que este fará o seu papel.
Para criar uma operação One-Way com WCF, é necessário decorar a operação com IsOneWay = true no atributo OperationContract e também é necessário retornar void, afinal uma operação One-Way não tem retorno.
[ServiceContract]
public interface IService
{
[OperationContract(IsOneWay=true)]
void ProcessarOneWay();
}
O próximo passo é implementar o serviço e a operação One-Way, no exemplo abaixo simulo uma operação com 15 segundos de duração:
public class Service : IService
{
public void ProcessarOneWay()
{
Trace.WriteLine(string.Format("Início ProcessarOneWay - {0}", DateTime.Now));
Thread.Sleep(15000);
Trace.WriteLine(string.Format("Fim ProcessarOneWay - {0}", DateTime.Now));
}
}
O link para download está disponível aqui.