RIA Services ошибка, но не используется

Я создал приложение ASP.NET MVC WebPages. Работает отлично локально. Отлично работает на сервере, когда я устанавливаю его как веб-сайт. Однако, когда он устанавливается как приложение IIS (уровень ниже другого веб-сайта, используя тот же пул приложений), все, что он делает, выдает это исключение:

Не удалось загрузить файл или сборку 'System.ServiceModel.DomainServices.Hosting, версия =4.0.0.0, культура = нейтральная, PublicKeyToken=31bf3856ad364e35' или одна из ее зависимостей. Система не может найти указанный файл.

Видимо, что-то связано со службами RIA WCF, которое не используется. Все, что я использую, это Linq to SQL. Как это возможно?

Сервер: Windows Server 2008 R2 с IIS 7.5

2 ответа

Проверьте web.config вашего приложения, если оно содержит такую ​​запись:

<httpModules>
  <add name="DomainServiceModule"
       type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>

Он расположен в <system.web> раздел.

Theres также еще одна запись, как:

<modules runAllManagedModulesForAllRequests="true">
  <add name="DomainServiceModule" 
       preCondition="managedHandler"
       type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</modules>

в <system.webserver> раздел.

Удалите записи, тогда вы не должны получать исключения.

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

Итак, у меня было веб-приложение на основе сервисов RIA. Это приложение использовало отдельную dll (DAL), которая содержала некоторые классы, приписываемые атрибутами RIA (конечно, она имела ссылку на dll RIA). На dll (DAL) ссылалась другая программа, которая не использовала RIA и вызвала ту же ошибку, что вы упоминали (но только с System.ServiceModel.DomainServices.Server). Эта ошибка возникла только при создании канала WCF (ChannelFactory<>). Поэтому я полагаю, что WCF должен знать обо всех ссылочных dll во время анализа атрибутов классов контракта. Но я не нашел никакого объяснения, почему WCF не использует только собственные атрибуты, не анализируя их все.

Другие вопросы по тегам