Wie wird einen Anruf meines WCF-Dienst asynchron machen?
-
03-07-2019 - |
Frage
Ich habe einen WCF-Dienst, die ich von einem Windows-Dienst aufrufen.
Der WCF-Dienst läuft ein SSIS-Paket, und das Paket kann eine Weile dauern zu beenden und ich will nicht meinen Windows-Dienst zu warten, haben, um es zu beenden.
Wie kann ich meine WCF-Service-Aufruf asynchron zu machen? (Oder ist es asynchron standardmäßig?)
Lösung
Alle Ihre Wünsche werden in den folgenden Artikeln von MSDN erfüllt sein:
Andere Tipps
Auf Visual Studio 2010 auf der Add Service Reference > click Advanced button > check the Generate Asynchronous Operations
Checkbox.
Nach so tun, werden die Async Operationen hinzugefügt und für die Nutzung zur Verfügung.
Service-Seite:
[ServiceContract]
public interface IMyService
{
[OperationContract]
bool DoWork(int i);
}
Client-Seite:
[ServiceContract(Name = nameof(IMyService))]
public interface IMyServiceClient : IMyService
{
[OperationContract]
Task<bool> DoWorkAsync(int i);
}
die WCF Proxy innerhalb des Client (Windows-Dienst?) Muss bei der Erstellung angegeben werden, die Sie Asynchrone Operationen zur Verfügung.
haben wollenSie können ein vorhandenes WCF-Proxy mit einem rechten Mausklick auf das ändern und ‚Configure Dienstverweis‘ Von hier aus der Auswahl müssen Sie nur das Kontrollkästchen zu ‚generieren asynchrone Operationen‘ neben überprüfen
Ok, so ist, dass die WCF-Proxy-Seite der Dinge gesorgt. Nun müssen Sie APM (Asynchronous Programming Model) mit dem Proxy innerhalb des Client verwenden.