Ich bekomme die folgende Ausnahme (kann nicht zwei Vorgänge im selben Vertrag mit dem gleichen Namen Methoden ExecuteAsync und Execute) wenn der folgende Dienst aktiviert ist .Kann nicht zwei Vorgänge im selben Vertrag mit dem gleichen Namen (Async & Non) haben
[ServiceContract]
public interface IMyService
{
[OperationContract]
byte[] Execute(MyRequest request);
[OperationContract]
Task<byte[]> ExecuteAsync(MyRequest request);
}
Ich denke, das macht Sinn, wenn Sie die svcutil.exe verwenden, um Ihren Dienstverweis zu erstellen, da die Task-basierten Operationen automatisch für Sie erstellt werden. Ich möchte jedoch keine Service-Referenz hinzufügen und stattdessen einfach die Standard-ChannelFactory verwenden, um den WCF-Channel zu erstellen. Gibt es eine andere Möglichkeit, dies zu tun, ohne die asynchrone Methode in etwas anderes umzubenennen? Oder muss ich die Synchronisierungsmethode auf dem Client in einer Task.Run?
wcf stützt sich async, warum Sie selbst definieren, Sie erste Methode als async auf Client –
@EhsanSajjad nennen kann - svcutil.exe manchmal beides erzeugen. – StingyJack