在使用WCF SOAP服务时,visual studio会在客户端使用者应用程序中自动在服务器中创建方法的同步和异步版本。例如,服务器中的这种非异步方法:
public Data GetData(){
return data;
}
既可以用作
var i = client.GetData();
或
var i = await client.GetDataAsync();
现在我的问题是,在服务器端使用异步服务操作方法是否有益?我的意思是如果将服务合同方法实现为async,服务器端是否会有任何性能提升?
答案 0 :(得分:2)
...如果将服务合同方法实现为异步,则会存在 在服务器端是否有任何性能提升?
在服务器端没有任何差别。客户端上的异步服务操作是纯粹的客户端实现。服务无法区分来电。
您认为服务的IDisposable的实现会是什么 是否有益
如果您正在谈论服务端代码,那么您将使用ServiceHost
容器来运行已实现IDisposable的服务,或者它将从IIS动态加载或者WAS,在这种情况下,您无法控制正确的谷物以实现IDisposable。
如果您的服务的内部代码在执行过程中使用了任何非托管资源,那么您需要管理这些内容的处理,但这是.net 101并适用于任何事情不只是WCF。