.Net 4.5 Svcutil gera duas operações com o mesmo nome (Method e MethodAsync)
Eu estou consumindo um wsdl pré-definido com svcutil a la:
svcutil some_service.wsdl
Um dos métodos gerados tem a seguinte assinatura:
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
SubmitDataResponse SubmitData( SubmitDataRequest request )
Enquanto o scvutil do VS2010 / .net35 gera apenas o acima e o VS não tem nenhum problema em acessar o serviço, o programa svcutil que faz parte do VS2012 / .net45 também gera um método com a assinatura
[System.ServiceModel.OperationContractAttribute(Action="http://ws.example.org/SubmitData", ReplyAction="*")]
Task<SubmitDataResponse> SubmitDataAsync( SubmitDataRequest request );
Isso causa uma exceção de tempo de execução:
System.InvalidOperationException: Não é possível ter duas operações no mesmo contrato com o mesmo nome, os métodos SubmitDataAsync e SubmitData no tipo MyType violam essa regra. Você pode alterar o nome de uma das operações alterando o nome do método ou usando a propriedade Name de OperationContractAttribute.
Eu posso contornar isso, excluindo os métodos anexados Async ou simplesmente usando svcutil do VS2010. Mas eu estou me perguntando por que o svcutil gera uma interface que causa uma exceção de tempo de execução (isso é um bug?), E se há algo adicional que devo fazer para que funcione.