找不到 WCF 数据服务类型

Posted

技术标签:

【中文标题】找不到 WCF 数据服务类型【英文标题】:WCF Data Services Type Could Not Be Found 【发布时间】:2011-09-12 18:31:58 【问题描述】:

我正在尝试将 WCF 数据服务从托管在 VS2010 中移动到开发 Web 服务器。当我将代码移动到 IIS7 应用程序时,我收到此错误:

找不到类型“Aaa.Bbb.Services.ZzzEntities”,作为 ServiceHost 指令中的服务属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

ZzzEntities.svc

<%@ ServiceHost
    Language = "C#"
    Factory = "System.Data.Services.DataServiceHostFactory,
               System.Data.Services, Version=4.0.0.0, Culture=neutral,
               PublicKeyToken=b77a5c561934e089"
    Service = "Aaa.Bbb.Services.ZzzEntities" %>

ZzzEntities.svc.cs

using Aaa.Bbb.Domain.Entities;
using System.Data.Services;
using System.Data.Services.Common;
using System.ServiceModel.Web;

namespace Aaa.Bbb.Services 
    public class ZzzEntities:DataService<Domain.EntityFramework.Context> 
        public static void InitializeService(DataServiceConfiguration config) 
            config.UseVerboseErrors = true;

            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);

            config.DataServiceBehavior.MaxProtocolVersion =
                DataServiceProtocolVersion.V3;
        
    

编辑:另外,Aaa.Bbb.Services.dll 已编译并位于 IIS7 Web 应用程序的 \bin 目录中。

编辑:按照here 的说明尝试创建ZzzEntities 的实例时出现以下错误 - System.TypeLoadException:无法从程序集“Aaa”加载类型“ZzzEntities”。 Bbb.Services,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null'。

使用 .NET Reflector 我可以清楚地看到 Aaa.Bbb.Services.dll 包含一个名为 ZzzEntities 的类,所以我真的不知道为什么我的类型无法创建。

【问题讨论】:

【参考方案1】:

这是命名空间之间的冲突。我正在使用Microsoft WCF Data Services 2011 CTP2,所以我必须将它添加到system.web/compilation/assemblies 的web.config 文件中:

<add assembly="Microsoft.Data.Services, Version=4.99.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="Microsoft.Data.Services.Client, Version=4.99.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

【讨论】:

以上是关于找不到 WCF 数据服务类型的主要内容,如果未能解决你的问题,请参考以下文章

为啥找不到我的自定义 WCF 行为扩展元素类型?

WCF,找不到 ServiceHost 指令中的服务属性值

找不到端点异常 - WCF Web 服务

找不到端点异常 - WCF Web 服务

如何从 WCF 数据服务返回复杂类型?

使用 SSL 找不到资源 wcf 服务