2015-02-06 5 views
1

Я унаследовал приложение WCF RIA, Silverlight 4, которое было бездействующим в течение нескольких лет. Предполагается, что код стабилен. Насколько мне известно, для его работы мне нужно установить зависимости, которые не были задокументированы.Операция с именем 'name' не соответствует требуемой сигнатуре. Типы параметров должны быть типами сущностей или одним из предопределенных сериализуемых типов.

После установки зависимостей, основанных на том, какую информацию я мог бы получить, я оставил следующую ошибку.

Операция под названием 'namereplaced' не соответствует требуемой подписи. Типы параметров должны быть типом сущности или один из предопределенных сериализуемых типов

Я уже попытался удалить RIA Services, как рекомендовано здесь. WCF Ria Operation does not conform to the required signature , но это приводит к большему количеству ошибок.

Я также попытался выслеживая конкретную версию набора инструментальных средств RIA Services, как предполагает здесь, но не повезло https://social.msdn.microsoft.com/Forums/silverlight/en-US/86f40859-18e8-4ce6-8d8a-a864fbe4e3ac/error-operation-named-createuser-does-not-conform-to-the-required-signature-parameter-types?forum=silverlightwcf

Кроме того, я попытался создать капли, извлеченные из FTP клиента в IIS и увидел следующее в машине Журнал событий

: Служба «/AppName/Services/SomeManager-Web-Services-ImportService.svc» не может быть активирован по причине исключения во время компиляции. Исключением является сообщение : Операция с именем «namereplaced» не соответствует нужной подписи . Типы параметров должны быть сущностью или сложным типом, набор сложных типов или один из предопределенных сериализуемых типов .. ---> System.InvalidOperationException: операция с именем «namereplaced» не соответствует требуемой сигнатуре. Параметр типы должны быть сущностью или сложным типом, набором комплексных типов или одним из предопределенных сериализуемых типов.

Однако, используя старую программу установки, что ИТ-специалисты нашли в архивах старых разработчиков, я был в состоянии создать экземпляр веб-сайта, который не генерирует эти ошибки, но не совместим с последней версией база данных. Я не нашел источник для проекта установки в исходном управлении.

Указанный способ определяется следующим образом

[Invoke(HasSideEffects=true)] 
    public void NameReplaced(IEnumerable<ImportRecord> recs) 
    { 
     foreach (var item in recs) 
     { 
      UpdateImportRecord(item); 
     } 
    } 

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

EDIT: Включенные предложение от Марка W,

public IQueryable<ImportRecord> GetImportRecords() 
     { 
      return null; 
     } 

но сообщается та же ошибка сборки.

+0

Какую версию Visual Studio вы используете? – OmegaMan

+0

Я использую VS2010. Я установил его специально для этого проекта. – recursionjm

ответ

0

Мы запускаем службы RIA на сервере, который его не установил.То, что мы делали, было опубликовать веб-сайт с Copy Local = True на:

  • System.ServiceModel.DomainServices.EntityFramework
  • System.ServiceModel.DomainServices.Hosting
  • System.ServiceModel.DomainServices.Hosting.OData
  • System.ServiceModel.DomainServices.Server

Если это не так - из-за магии доменных служб, служба должна автоматически генерировать тип класса. Создаются только те типы, которые возвращаются из службы. Если служба домена не имеет метода для возврата Iqueryable или Ienumerable типа ImportRecord, вы можете создать метод, который возвращает null - этого будет достаточно для генерации кода.

Это мои первые две мысли.

EDIT: Это похоже на то, что я говорю: previously asked question

+0

Я добавил метод, возвращающий нужный IQueryable . Он все еще не строится, и сообщает о той же ошибке. – recursionjm

+0

У вас есть ключ, определенный для объекта? –

+0

Да, у меня есть ключ, определенный в ImportRecord. – recursionjm

1

Поскольку этот проект является воскрешены для какой-то цели, я рекомендую использовать последнюю Visual Studio и переместить его в Silverlight 5. подумал, почему нужно иметь дело со старой технологией, которая будет откровенно препятствовать процессу.

Прокомментируйте то, что не работает, пока вы не начнете работать (не работает), чтобы начать с. Затем возвращайтесь к вещам, которые вызывают проблемы.

Я говорю об этом из-за большой работы как в S4 & S5, так и откровенно (к коду) мало что изменилось; при выполнении этого процесса да, обновление будет иметь проблемы, но они не являются непреодолимыми. Плюс к тому, что установочные умники стали лучше для S5 и более поздних версий Visual Studio.

+0

Я могу понять, откуда вы. Одной из причин его воскрешения является устранение проблемы, возникающей в процессе производства. В идеале, я хотел бы оставить дополнительные переменные из состава. – recursionjm

+0

Я не переместил версию Silverlight, но установка более поздней версии WCF Ria Services, похоже, сделала трюк. Кажется, что последовательность шагов удаления/переустановки изменилась, поскольку я установил один и тот же набор компонентов, но не смог его построить ранее. – recursionjm

+0

@recursionjm У меня был * недавний проект Silverlight, где клиент просто перешел на новую машину и должен был продолжать использовать VS2010, который дал нам проблемы; последовательность установки является странно загадочной. – OmegaMan

 Смежные вопросы

  • Нет связанных вопросов^_^