Почему у меня проблемы с EF5 с приложением службы WCF?

Я создал службы данных EF раньше, но я получаю это сообщение каждый раз, когда пытаюсь создать приложение службы EF5 - WCF.

Операция ProcessRequestForMessage не может быть загружена, поскольку она имеет параметр или тип возврата типа System.ServiceModel.Channels.Message или тип, имеющий MessageContractAttribute и другие параметры различных типов. При использовании System.ServiceModel.Channels.Message или типов с MessageContractAttribute метод не должен использовать какие-либо другие типы параметров.

  1. Я создаю приложение службы WCF,
  2. добавить ссылки System.Data.Services
  3. Создать модель EF
  4. Изменил стратегию генерации кода на "По умолчанию" и удалил ".tt"
  5. Унаследовать Data Service на мой класс обслуживания (Service1)
  6. Добавьте требуемую подпрограмму "InitilizeService"
  7. Без изменений в web.config

Когда я пытаюсь отладить, я получаю сообщение. Я использую VS2012

Это было некоторое время назад, так как я использовал Data Services, но, глядя на мой старый проект VS2010, который работает, я изменил web.config, чтобы включить службу с конечной точкой с "System.Data.Services.IRequestHandler" в качестве контракта.

Я также попробовал это снова, а также изменил привязку на "webHttpBinding", который, похоже, тоже не работал. Есть идеи?

Если все остальное терпит неудачу, я думаю, что я могу использовать Open Access ORM со встроенными инструментами генерации сервисов, потому что я могу по крайней мере заставить это работать.

С уважением

Крис Лич

3 ответа

Решение

Добавить: Factory="System.Data.Services.DataServiceHostFactory, Microsoft.Data.Services, версия =5.0.0.0, культура = нейтральная, PublicKeyToken=31bf3856ad364e35"

У меня была та же ошибка, но я заметил, что атрибут "Factory" отсутствует в моем файле разметки хоста службы. Итак, нажмите на свой файл Data Service и выберите "View Markup" и проверьте, есть ли атрибут Factory и он правильный:

До:

<%@ ServiceHost Language="C#" Debug="true" 
    Service="ServiceNamespace.ServiceClassName"    
    CodeBehind="ServiceClassName.svc.cs" %>

После:

<%@ ServiceHost Language="C#" Debug="true" 
    Service="ServiceNamespace.ServiceClassName"
    Factory="System.ServiceModel.Activation.WebServiceHostFactory, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"      
    CodeBehind="ServiceClassName.svc.cs" %>

Не понял этого напрямую, однако я скачал демонстрационный проект с этого сайта http://code.msdn.microsoft.com/windowsdesktop/WCF-Data-50-for-OData-v3-53074189 и изменил службу данных, затем Voala, Нет больше ошибок

Надеюсь, что это помогает другим

Приветствия за попытку парней.

Другие вопросы по тегам