我消耗预定的WSDL与两个操作SvcUtil工具一拉:.NET 4.5 SvcUtil工具生成具有相同名称(方法和MethodAsync)
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和类型的MyType SubmitData违反此规则。您可以通过更改方法名称或使用OperationContractAttribute的Name属性来更改其中一个操作的名称 。
我可以通过删除Async附加方法或者简单地使用VS2010中的svcutil来解决这个问题。但是我想知道为什么svcutil会生成一个导致运行时异常的接口(这是一个错误?),以及是否有其他额外的工作要做。
其他解决方法:使用'/ async-'命令行标志。 – 2012-07-18 16:54:40
什么是您的运行时框架? – 2012-07-18 18:01:36
@JamesManning汇编目标.Net 4.5 – vossad01 2012-07-18 18:10:08