.Net 4.5 Svcutil генерирует две операции с одинаковыми именами (Method и MethodAsync)

Я использую предопределенный wsdl с svcutil а-ля:

svcutil some_service.wsdl

один из сгенерированных методов имеет следующую сигнатуру:

[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
SubmitDataResponse SubmitData( SubmitDataRequest request )

В то время как scvutil из VS2010/.net35 генерирует только вышеуказанное, и у VS нет проблем с запуском службы, программа svcutil, входящая в состав VS2012/.net45, также генерирует метод с сигнатурой

[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
Task<SubmitDataResponse> SubmitDataAsync( SubmitDataRequest request );

Это вызывает исключение времени выполнения -:

System.InvalidOperationException: Cannot have two operations in the same contract with the same name, methods SubmitDataAsync and SubmitData in type MyType violate this rule. You can change the name of one of the operations by changing the method name or by using the Name property of OperationContractAttribute.

. Я могу обойти это, удалив добавленные методы Async или просто используя svcutil из VS2010. Но мне интересно, почему svcutil генерирует интерфейс, который вызывает исключение во время выполнения (, это ошибка? ), и есть ли что-то еще, что я должен сделать, чтобы заставить его работать.

15
задан Enrico Campidoglio 22 August 2013 в 08:18
поделиться