0

我之前创建了 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 没有变化

当我尝试调试时,我收到了消息。我正在使用 VS2012

自从我使用数据服务以来已经有一段时间了,但是查看我的旧 VS2010 项目,我已经修改了 web.config 以包含一个服务,该服务的端点以“System.Data.Services.IRequestHandler”作为合同。

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

如果一切都失败了,我想我可以使用 Open Access ORM 及其内置的服务生成工具,因为我至少可以让它工作。

此致

克里斯·利奇

4

3 回答 3

3

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

于 2012-11-16T01:29:22.823 回答
1

我遇到了同样的错误,但我注意到我的服务主机标记文件中缺少“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" %>
于 2015-05-21T09:58:11.367 回答
0

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

希望这对其他人有帮助

为尝试的人干杯。

于 2012-10-16T14:14:10.383 回答