.Net 4.5 Svcutil erzeugt zwei Operationen mit demselben Namen (Methode und MethodAsync)

Ich bin der Verzehr einer vordefinierten wsdl mit svcutil a la:

svcutil some_service.wsdl

einer der Methoden, die dabei erzeugt wurde, hat die folgende Signatur:

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

Während scvutil von VS2010/.net35 erzeugt nur die oben und VS hat kein problem lanuching den service,
das svcutil-Programm, das Teil von VS2012/.net45 erzeugt auch eine Methode mit der Signatur

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

Dies bewirkt, dass eine Laufzeit-Ausnahme:

System.InvalidOperationException: kann Nicht zwei Einsätze in der
gleiche Vertrag mit den gleichen Namen, Methoden und SubmitDataAsync
SubmitData in Typ MyType gegen diese Regel verstoßen. Sie können den Namen ändern
der eine der Operationen, die durch die änderung der Namen der Methode oder durch die Verwendung der
Name-Eigenschaft OperationContractAttribute.

Kann ich arbeiten, um dieses durch löschen der Async angehängt Methoden oder einfach mit svcutil von VS2010. Aber ich Frage mich, warum svcutil erzeugt eine Schnittstelle, die bewirkt, dass eine Laufzeit-exception (ist das ein bug?), und ob es was soll ich tun, damit es funktioniert.

  • Andere Problemumgehung: verwenden Sie die /async- Befehlszeilen-flag.
  • Was ist Ihre runtime-framework? Vielleicht ist es eine Einschränkung, die nicht vorhanden sind, in einem späteren Rahmen
  • Die Montage Ziele .Net 4.5
  • Verpasst haben Sie vor oder können neu in der RTM-Version, aber es gibt auch eine /syncOnly Kommandozeilen-flag, das bewirkt, dass es nicht zu generieren, die task-basierte asynchrone Methoden.
  • In meiner situation habe ich neu konfiguriert-service-Referenz mit generate asynchronous operations radio-button statt " generate task-based operations.
InformationsquelleAutor vossad01 | 2012-07-18
Schreibe einen Kommentar