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?)

War es hilfreich?

Lösung

Alle Ihre Wünsche werden in den folgenden Artikeln von MSDN erfüllt sein:

Implementierung eines Async Service Operation

Aufruf WCF-Dienst Async

Designing Serviceverträge

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 wollen

Sie 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top