从wsdl生成async-only接口?

时间:2016-11-08 12:25:07

标签: .net wcf svcutil.exe

有没有办法用svcUtil生成基于任务的异步方法?

原因是我已经提供了我需要实现作为服务的WSDL。最简单的方法似乎是将它们作为服务引用添加,并将生成的接口实现为服务。只要你保持同步,这就行得很好但是对于异步,它显然会生成两个具有相同OperationContract的方法,这是无效的。

当然,还有其他解决这种困境的方法。我的约束是我必须坚持给定的WSDL文件,所以我不能从界面生成WSDL(yay -.-)

关于重复索赔:不。这根本没有用。我现在使用ConcurrencyMode和基于任务的服务,两者之间的性能差异很大。例如:针对这些实现中的任何一个使用100个线程进行拍摄,

public async Task<SomeObj> GetSomeObj(SomeReq request)
{
    await Task.Delay(1000);
    return SomeObj();
}

表现得更好
public SomeObj GetSomeObj(SomeReq request)
{
    Thread.Sleep(1000);
    return new SomeObj();
}

无论在ServiceBehavior中选择了什么ConcurrencyMode(有趣的是,它对性能的影响很小)。

所以问题仍然存在:如何从WSDL生成基于任务的服务契约,因为我们可以清楚地表明它们具有卓越的性能(无论是在启动行为方面还是在运行时性能的可预测性方面)。 / p>

0 个答案:

没有答案