Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.