为什么我的EF5与WCF服务应用程序有问题?

时间:2012-10-01 13:26:27

标签: entity-framework wcf-data-services

之前我已经创建了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. 继承DataService< DBEntities>到我的服务类(Service1)
  6. 添加所需的“InitilizeService”例程
  7. 无法更改web.config
  8. 当我尝试调试时,我收到了消息。我正在使用VS2012

    不久之前,因为我使用过数据服务,但是查看我的旧VS2010项目,我已经修改了web.config以包含一个服务,其端点为“System.Data.Services.IRequestHandler”作为合同。

    我还尝试了它,以及将绑定更改为“webHttpBinding”,这似乎也不起作用。有任何想法吗?

    如果所有其他方法都失败了,我想我可以使用Open Access ORM及其内置的服务生成工具,因为我至少可以使用它。

    最好的问候

    Chris Leach

3 个答案:

答案 0 :(得分:2)

添加: Factory =“System.Data.Services.DataServiceHostFactory,Microsoft.Data.Services,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”

答案 1 :(得分:0)

没有直接解决这个问题,但是我从这个网站http://code.msdn.microsoft.com/windowsdesktop/WCF-Data-50-for-OData-v3-53074189下载了演示项目并修改了数据服务,然后修改了Voala。没有更多错误

希望这有助于其他人

为尝试家伙干杯。

答案 2 :(得分:0)

我遇到了同样的错误,但我注意到我的服务主机标记文件中缺少“Factory”属性。因此,单击您的数据服务文件并选择“查看标记”并检查是否存在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" %>