Не удалось найти тип служб данных WCF - PullRequest
4 голосов
/ 10 июня 2011

Я пытаюсь переместить Службу данных WCF из хостинга в VS2010 на веб-сервер разработки.Когда я перемещаю код в приложение IIS7, я получаю эту ошибку:

Тип 'Aaa.Bbb.Services.ZzzEntities', предоставленный в качестве значения атрибута Service в директиве 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 скомпилировано и находится в каталоге \ bin веб-приложения IIS7.

РЕДАКТИРОВАТЬ : следуя инструкциям здесь Я получаю следующую ошибку при попытке создать экземпляр ZzzEntities - System.TypeLoadException: не удалось загрузить тип 'ZzzEntities' из сборки 'Aaa.Bbb.Services, Version = 1.0.0.0, Culture= нейтральный, PublicKeyToken = null '.

Использование .NET Reflector Я ясно вижу, что Aaa.Bbb.Services.dll содержит класс с именем ZzzEntities, поэтому я действительно растерялся, почему мой тип может'не может быть создано.

1 Ответ

7 голосов
/ 13 июня 2011

Это был конфликт между пространствами имен.Я использую Microsoft WCF Data Services 2011 CTP2 , поэтому мне пришлось добавить это в мой файл web.config в system.web/compilation/assemblies:

<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" />
...