我有一個自託管的WCF服務,.NET框架4.5.2,使用NetTcpBinding和一個WPF客戶端(4.5.2也)遠程使用此服務。到目前爲止,我所有的OperationContracts都是同步的。同步調用異步WCF方法無ServiceReference
我想添加一個異步的OperationContract到WCF服務,但是從客戶端同步調用它(原因是這樣我可以在服務方法中使用async/await)。
問題:此解決方案不使用服務引用或SvcUtil。我們使用共享庫模式,其中服務合約是在客戶端和服務器都參考的共享庫中定義的。客戶端代理使用ChannelFactory.CreateChannel創建。
這是否可行?我需要保持異步/等待出於客戶端,但在服務器方法中使用它。如果這是不可能的,我可以使OperationContract同步,但將其視爲Main方法並使用GetAwaiter()。GetResult(),否則會遇到死鎖問題?