2010-09-13 5 views
15

Я пытался сделать простую службу обслуживания wcf, которая вернет JSON. Он работает, если я запустил его на сервере разработки. Однако, если развернуть его на IIS 7.5, я буду иметь эту ошибку, когда я доступ к которому осуществляется с помощью http://localhost:70IIS 7.5 Ошибка в Restful WCF 4.0

Ошибка HTTP 500.19 - Internal Server Error Запрашиваемая страница не может быть доступ, поскольку связанные данные конфигурации для страница недействительна.

Ошибка конфигурации Раздел конфигурации «standardEndpoints» не может быть прочитан , так как он отсутствует раздел декларации

Вот мой конфигурационный файл: Этот файл по умолчанию генерируется VS2010.

<?xml version="1.0"?> 
<configuration> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 

    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </modules> 
    </system.webServer> 

    <system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
    <standardEndpoints> 
     <webHttpEndpoint> 
     <!-- 
      Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
      via the attributes on the <standardEndpoint> element below 
     --> 
     <standardEndpoint name="LocationService" helpEnabled="true" automaticFormatSelectionEnabled="true"/> 
     </webHttpEndpoint> 
    </standardEndpoints> 
    </system.serviceModel> 

</configuration> 

Im новый для WCF специально для .net 4.0 и IIS 7.5.

Может ли кто-нибудь помочь? Или кто-то испытал то же самое и уже исправил?

ответ

23

У вас определенно есть пул приложений IIS для вашего сайта, настроенный для работы с ASP.NET 4.0?

Щелкните правой кнопкой мыши свой виртуальный каталог в диспетчере IIS> Управление приложением> Дополнительные параметры> прочитайте имя пула приложений.

Затем перейдите в Application Pools, найдите это имя и убедитесь, что в столбце .NET Framework указано v4.0.

+0

благодаря этому человеку , я проверил и выяснил, что мое приложение создает собственный пул приложений, который использует asp.net 2.0 вместо 4.0. Теперь его работа. Большое спасибо. –

+0

Большое вам спасибо! –

2

У меня была такая же ошибка на w2008 x64 с пулом приложений, запущенным .net 4.0; после установки SP2 проблема исчезла

0

К сожалению, чтобы задать вопрос, который может показаться очевидным для некоторых, но это может помочь другим (в основном меня), если вы могли бы уточнить последний шаг:

Затем перейти к Пулы приложений .. .

Где я могу найти пулы приложений?

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

Благодаря

Ok, после 10 секунд исследования (я открыл глаза) и посмотрел прямо над сайты в диспетчере IIS

enter image description here

1

Этот вопрос можно увидеть на Windows Server 2008 без обслуживания пакет 2 установлен. Чтобы устранить проблему, установите пакет обновления 2 (SP2) для Windows Server 2008.

Взятые из Ram Poornalingam's WebLog entry from the 26th October 2009:

Если вы столкнулись следующее сообщение об ошибке в веб-приложения (все организовано в IIS) «Раздел конфигурации не может быть прочитан, так как он отсутствует раздел декларации»

примеры

«раздел конфигурации„standardEndpoints“не может быть прочитан, так как он отсутствует раздел декларации»

Раздел конфигурации «отслеживания» не может быть прочитан, так как он отсутствует раздел декларации»

тогда вам нужно установить либо SP2 в Vista/Win2k8 или исправления, упомянутые в статье базы знаний 958854.

+0

Это была проблема, с которой мы столкнулись после обновления некоторых старых серверов приложений x86 от IIS 6 (2003) до IIS 7 (2008 SP2). Спасибо, что поделились исправлением! – SliverNinja