Como fazer uma chamada para o meu assíncrona serviço WCF?
-
03-07-2019 - |
Pergunta
Eu tenho um serviço WCF que eu chamo de um serviço do Windows.
O serviço WCF executa um pacote SSIS, e que pacote pode demorar um pouco para completa e eu não quero que o meu serviço de janelas de ter que esperar por ele ao fim.
Como posso fazer o meu WCF serviço de chamada assíncrona? (Ou é assíncrono por padrão?)
Solução
Todas as suas necessidades serão satisfeitas nos seguintes artigos do MSDN:
Outras dicas
No Visual Studio 2010, na caixa de seleção Add Service Reference > click Advanced button > check the Generate Asynchronous Operations
.
Depois de fazer isso, será adicionado as operações assíncronas e estar disponível para seu uso.
lado Serviço:
[ServiceContract]
public interface IMyService
{
[OperationContract]
bool DoWork(int i);
}
lado do cliente:
[ServiceContract(Name = nameof(IMyService))]
public interface IMyServiceClient : IMyService
{
[OperationContract]
Task<bool> DoWorkAsync(int i);
}
o interior WCF Proxy do seu cliente (serviço do Windows?) Precisa ser especificado na criação que você deseja ter Operações assíncronas disponíveis.
Você pode modificar um proxy WCF existente com o botão direito sobre ele e escolha 'Configurar Serviço de Referência' A partir daí você só precisa verificar a caixa de seleção ao lado de 'Gerar operações assíncronas'
Ok, então esse é o lado WCF Proxy de coisas cuidado. Agora você precisa usar APM (Programação Asynchronous Model) com o interior Proxy de seu cliente.