WCF服务调用Java服务。它应该是异步的吗?

WCF服务调用Java服务。它应该是异步的吗?,wcf,async-await,Wcf,Async Await,我目前有一个应用程序,用户可以通过它向我的ASP.Net UI发出请求,而我的ASP.Net UI反过来对WCF服务进行异步调用,以保持ASP.Net线程空闲 WCF服务本质上是一个翻译模块,位于受限网络上,并将DMZ桥接到可信网络。这个服务调用一个Java服务,它将访问数据库,我目前将其作为一个同步调用 我的WCF服务是使用ConcurrencyMode.Single和InstanceContextMode.PerCall设置的,因此我猜当服务主机上的线程用完时,我将开始备份请求,因为UI正在

我目前有一个应用程序,用户可以通过它向我的ASP.Net UI发出请求,而我的ASP.Net UI反过来对WCF服务进行异步调用,以保持ASP.Net线程空闲

WCF服务本质上是一个翻译模块,位于受限网络上,并将DMZ桥接到可信网络。这个服务调用一个Java服务,它将访问数据库,我目前将其作为一个同步调用

我的WCF服务是使用
ConcurrencyMode.Single
InstanceContextMode.PerCall
设置的,因此我猜当服务主机上的线程用完时,我将开始备份请求,因为UI正在调用async,允许用户发送多个请求


我是否应该像在UI中那样,将Java服务作为异步任务调用?

async wait
几乎总是一个好主意。您使用的IO(在本例中是对java服务的网络调用)实际上并不重要,只要它可以通过在等待IO完成的同时释放线程而从异步处理中获益


当然,通过使java服务完全异步,您将获得更大的好处,但这不是必需的。

请记住,您正在通过HTTP调用SOAP服务。用于在HTTP通道的另一端实现它的技术是不相关的。