Ошибка при добавлении ссылки на службу :. Тип — контракт рекурсивного сбора данных, который не поддерживается

Я попытался добавить ссылку на службу в службу WCF, которая находится в том же решении из проекта ASP.NET MVC 4, но не удалось. Я получил сообщение об ошибке:

Custom tool error: Failed to generate code for the service reference 'XXX'. Please check other error and warning messages for details. The root warning is:

Warning 9 Custom tool warning: Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Type 'Newtonsoft.Json.Linq.JToken' is a recursive collection data contract which is not supported. Consider modifying the definition of collection 'Newtonsoft.Json.Linq.JToken' to remove references to itself. XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IXXX'] C:\Projects...\Reference.svcmap 1 1 pqrt.web

Если я удалил контракты данных из сервисного контракта, это сработало. Я также попытался добавить ссылку на службу в другие проекты, такие как проект библиотеки или даже проект ASP.NET MVC 3, и все это сработало. Мне было интересно, была ли это проблема с ASP.NET MVC 4? Я использовал VS 2012 RC.

Один обходной путь, который я могу придумать, — это добавить ссылку на службу в проект библиотеки, а затем вызвать проект библиотеки из ASP.NET MVC 4, но я ненавижу это делать, поскольку это лишний шаг. Какие-либо предложения?

15
задан abatishchev 29 August 2012 в 08:16
поделиться