我与消费SvcUtil工具一拉一个预定义的WSDL:
svcutil some_service.wsdl
的产生的方法之一具有如下特征:
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
SubmitDataResponse SubmitData( SubmitDataRequest request )
而从VS2010 scvutil / .net35仅生成上述和VS没有问题lanuching服务,则SvcUtil工具程序,它是VS2012 / .net45的一部分还产生方法与签名
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
Task<SubmitDataResponse> SubmitDataAsync( SubmitDataRequest request );
这会导致运行时异常:
System.InvalidOperationException:无法在具有相同名称相同的合同两种操作,方法SubmitDataAsync和SubmitData型的MyType违反此规则。 您可以通过改变方法名或使用OperationContractAttribute的名称属性更改操作的一个名称。
我可以通过删除异步附加方法或简单地使用SvcUtil工具VS2010从解决此。 不过,我很奇怪,为什么SvcUtil工具生成,导致运行时异常(这是一个错误吗?),以及是否有额外的东西,我应该做的,使其工作的接口。