我有一个自托管的WCF服务,.NET框架4.5.2,使用NetTcpBinding和一个WPF客户端(4.5.2也)远程使用此服务。到目前为止,我所有的OperationContracts都是同步的。同步调用异步WCF方法无ServiceReference
我想添加一个异步的OperationContract到WCF服务,但是从客户端同步调用它(原因是这样我可以在服务方法中使用async/await)。
问题:此解决方案不使用服务引用或SvcUtil。我们使用共享库模式,其中服务合约是在客户端和服务器都参考的共享库中定义的。客户端代理使用ChannelFactory.CreateChannel创建。
这是否可行?我需要保持异步/等待出于客户端,但在服务器方法中使用它。如果这是不可能的,我可以使OperationContract同步,但将其视为Main方法并使用GetAwaiter()。GetResult(),否则会遇到死锁问题?