vos*_*d01 15 svcutil.exe task-parallel-library async-await .net-4.5 visual-studio-2012
我正在使用svcutil a la消耗预定义的wsdl:
svcutil some_service.wsdl
Run Code Online (Sandbox Code Playgroud)
生成的方法之一具有以下签名:
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
SubmitDataResponse SubmitData( SubmitDataRequest request )
Run Code Online (Sandbox Code Playgroud)
而从VS2010 scvutil/.net35仅生成上述和VS没有问题lanuching服务,则SvcUtil工具程序,它是VS2012/.net45的一部分还产生方法与签名
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
Task<SubmitDataResponse> SubmitDataAsync( SubmitDataRequest request );
Run Code Online (Sandbox Code Playgroud)
这会导致运行时异常:
System.InvalidOperationException:无法在具有相同名称相同的合同两种操作,方法SubmitDataAsync和SubmitData型的MyType违反此规则.您可以通过更改方法名称或使用OperationContractAttribute的Name属性来更改其中一个操作的名称.
我可以通过删除Async附加方法或简单地使用VS2010中的svcutil来解决这个问题.不过,我很奇怪,为什么SvcUtil工具生成,导致运行时异常(这是一个错误吗?),以及是否有额外的东西,我应该做的,使其工作的接口.
Jim*_*mmy 21
默认行为似乎已更改.如果您提供/ syncOnly参数,它会为我保留旧的行为.
/syncOnly - Generate only synchronous method
signature. Default: generate synchronous
and task-based asynchronous method
signatures.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9015 次 |
| 最近记录: |