Fehler beim Hinzufügen der Servicereferenz: Typ ist ein rekursiver Erfassungsdatenvertrag, der nicht unterstützt wird

Ich habe versucht, einen Dienstverweis zu einem WCF-Dienst hinzuzufügen, der sich in derselben Lösung aus einem ASP.NET MVC 4-Projekt befindet, bin jedoch fehlgeschlagen. Ich habe eine Fehlermeldung erhalten:

Benutzerdefinierter Tool-Fehler: Fehler beim Generieren des Codes für die Servicereferenz 'XXX'. Bitte überprüfen Sie andere Fehler- und Warnmeldungen auf Details. Die Root-Warnung lautet:

Warnung 9 Warnung vor benutzerdefiniertem Tool: wsdl: portType kann nicht importiert werden. Detail: Beim Ausführen einer WSDL-Importerweiterung wurde eine Ausnahme ausgelöst: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Fehler: Geben Sie 'Newtonsoft.Json.Linq.JToken' ein wird nicht unterstützt. Erwägen Sie, die Definition der Sammlung "Newtonsoft.Json.Linq.JToken" zu ändern, um Verweise auf sich selbst zu entfernen. XPath to Error Quelle: //wsdl:definitions[@targetNamespace='http://tempuri.org/')/wsdl:portType[@name='IXXX '] C: \ Projects ... \ Reference.svcmap 1 1 pqrt.web

Wenn ich die Datenverträge aus dem Servicevertrag entfernt habe, hat es funktioniert. Ich habe auch versucht, den Dienstverweis zu anderen Projekten wie einem Bibliotheksprojekt oder sogar einem ASP.NET MVC 3-Projekt hinzuzufügen. Alles hat funktioniert. Ich habe mich gefragt, ob dies ein Problem mit ASP.NET MVC 4 ist. Ich habe VS 2012 RC verwendet.

Eine mögliche Problemumgehung besteht darin, den Dienstverweis einem Bibliotheksprojekt hinzuzufügen und das Bibliotheksprojekt dann in ASP.NET MVC 4 aufzurufen. Ich hasse es jedoch, dies zu tun, da dies ein zusätzlicher Schritt ist. Irgendwelche Vorschläge?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage