2010-08-02 2 views
178

При попытке развернуть веб-сайт .net 3.5 в пуле приложений по умолчанию в IIS7 с разделом фрейма, установленным в 4.0, появляется следующая ошибка.Развертывание IIS7 - duplicate 'system.web.extensions/scripting/scriptResourceHandler'

Существует раздел дубликата 'System.Web.Extensions/скриптового/scriptResourceHandler' определены.

Комментарий к нарушившимся линиям тоже не помог. Любые указатели на то, что мне нужно делать или смотреть?

ответ

287

Если ваш план заключается в развертывании в IIS с пулом приложений, запущенным в .net 4.0, вам необходимо очистить файл web.config, который включает в себя весь раздел Определения, которые указывают на .net 3.5. Причина этого не в том, что эти определения разделов уже включены в корневой web.config в .NET 4.0 (см.% Windir% \ microsoft.net \ framework \ v4.0.30319 \ config \ machine.config), которые включают всю систему. уже объявлено.

Еще одно быстрое решение состоит в том, чтобы пул приложений устанавливался в 2.0, как кажется, как и у вашей машины разработки.

+0

Спасибо. Я действительно подумал об этом обходном пути после того, как потрудился еще немного. – user20358

+2

Спасибо, что объяснили это.Я продолжал видеть решение для удаления раздела из файла конфигурации, и мне интересно: «Как вырезать части вашего файла конфигурации?» –

+0

Спасибо! Вы только что помогли мне исправить проблему полусрочной производственной площадки, вызванную тем, что кто-то/что-то изменил свой пул приложений. – Sam

1

Эль проблема- эс Porque эль бассейн Por defecto Эста ан .net 4.0 Solucion:.! Entrar сервер IIS Administrador Ладо Derecho establecer Valores де Grupos де Aplicaciones [введите описание изображения здесь] [1] у Cambiar ла vercion дель рамки ! [введите описание изображения здесь] [2]

Con Эсто pudes solucionar эль проблема- аль instalar ла Administracion центральный SharePoint 2010

----- с помощью Google Translate -----

Проблема в том, что e пул по умолчанию. Решение Net 4.0: введите диспетчер IIS для установки значений в правой части пулов приложений.! [Введите описание изображения здесь] [1] и изменить рамочную версию! [Введите описание изображения здесь] [2]

Это должно решить проблему установка центра администрирования SharePoint 2010

+21

Добро пожаловать в StackOverflow! Если у вас недостаточно владения английским языком, запустите свои ответы через [Google Translate] (http://translate.google.com). Сообщество улучшит любые странные фразы путем редактирования. Спасибо за ваш ответ. ||||| через Google Translate ||||| Bienvenido a StackOverflow! Власти не пользовались ни тем, ни другими правами, предоставляя услугу, чтобы помочь вам найти перевод [http://translate.google.com]. La comunidad mejorará frases extrañas en la edición. Gracias por su respuesta. –

43

Решения для меня было изменить версия рамки .NET в пулах приложений от v4.0 до v2.0 для App по умолчанию Бассейна:

enter image description here

+11

aaaand, если вы действительно используете .NET 4.0 в приложении? –

+3

@MichaelPaulukonis У меня была эта проблема, оказалось, что на корневом веб-сайте, на котором мой сайт наследовал, появился веб-сайт. – guanome

+0

@MichaelPaulukonis, pfft, как это произойдет! – DaveDev

38

Если, как я, вы должны предназначаться v4, но можно построить только с .NET 3.5 , следуйте инструкциям here. Просто замените в вашем web.config все содержание <configSections> с:

<configSections> 
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
    <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
     <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/> 
     <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
     <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
     <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
    </sectionGroup> 
    </sectionGroup> 
</sectionGroup> 

+2

Это единственное решение, которое решило мою ошибку! Большое спасибо! –

+1

Это тоже решило мою проблему. Сервер был обновлен IIS6 до IIS7.5. На IIS6 он работал под версией v4.0, но IIS7.5 нуждался в этом изменении web.config. – johna

+0

Это было потрясающе. – mzonerz

0

Другой способ избежать этой проблемы, которые могут помочь другим построить свой .net веб-сервиса до версии 4.0 или выше, если это возможно ,

0

Установите пул приложений на 2.0, я сделал это и работал.

0

В моем случае я хотел, чтобы вручную добавить urlrewrite правило и не мог видеть очевидную ошибку (я пропустил <rules> тег):

неправильный код:

<rewrite> 
     <rule name="some rule" stopProcessing="true"> 
     <match url="some-pattenr/(.*)" />   
     <action type="Redirect" url="/some-ne-pattenr/{R:1}" /> 
     </rule> 
    </rewrite>  

    </system.webServer> 
</configuration> 

правильный код (с правила тегов):

<rewrite> 
     <rules> 
     <rule name="some rule" stopProcessing="true"> 
      <match url="some-pattenr/(.*)" />   
      <action type="Redirect" url="/some-ne-pattenr/{R:1}" /> 
     </rule> 
     </rules> 
    </rewrite> 

    </system.webServer> 
</configuration> 
0

В моем случае у меня было 2 разных приложения, которые использовали один и тот же пул приложений. Первый использовал фреймворк .net4.5, а новый использовал 2.0. Когда я изменил второе приложение на свой собственный пул приложений, он начал работать нормально, без изменений в web.config.

0

Мое решение было глупо.

  • Я установил копию .net 3.5

  • создал другой пул приложений и выбрал .net 3.5 (он говорит 2.0.5077 в Выпадающее)

  • Добавлен мой сайт, чтобы что приложение пул

  • Восстановленный старый и новый бассейны и сайт начал работать.

Это привело к тому, что я не установил 3.5, даже несмотря на то, что включил функции Windows, сказанные мной и создав другой пул приложений для использования. Надеюсь, это поможет другим.

0

Я решил это, делая следующие шаги:

  1. Я создал группу нового приложения в IIS.
  2. Открыть дополнительные настройки для сайта или веб-приложения, которое имеет .
  3. И установите группу нового приложения.

Здесь у вас есть образы этих шагов: сообщение

Create a new application's group

After you create the application's group

Set the application group in your site or web app

0

Эта ошибка, кажется, возникают в различных ситуациях.

В моем случае поверх файла приложения Web.Config моего приложения был добавлен дополнительный файл Web.Config в корневой папке (C: \ Inetpub \ www.root). Вероятно, после некоторых испытаний я остался там, я забыл все об этом и не мог понять, в чем проблема.

Снятие его решило проблему для меня.

0

Возможно, это неправильный ответ.Но это был первый хит в Google, когда я попытался решить мою проблему. С этим сказано ...

Такое же сообщение об ошибке произошло и для меня, но когда я попытался запустить IIS Express через Visual Studio.

Моя проблема была в том, что я ошибочно совершил мой applicationhost.config в TFS. Позже, когда я попытался запустить проект на своем ноутбуке после получения последних коммитов. вот когда произошла ошибка.

Я обнаружил, что путь к виртуальному каталогу был неправильным.

<virtualDirectory path="/" physicalPath="C:\Users\giddan\Documents\Visual Studio 2015\Projects\ProjectName\DeV.ProjectName\DeV.ProjectName.Web" /> 

Надеюсь, что это поможет кому-то!

Это мой первый пост, так нежна :)

0

Мое приложение было приложение ASP.Net3.5 (используя версию 2 рамки). Когда приложения ASP.Net3.5 созданы, Visual Studio автоматически добавляет scriptResourceHandler в web.config. Более поздние версии .Net помещают это в файл machine.config. Если вы запустите приложение ASP.Net 3.5 с помощью пула приложений версии 4 (в зависимости от порядка установки это пул приложений по умолчанию), вы получите эту ошибку.

Когда я перешел к использованию пула приложений версии 2.0. Ошибка исчезла. Затем мне пришлось иметь дело с ошибкой при обслуживании WCF .svc:

Ошибка HTTP 404,17 - Not Found Запрошенная содержание, как представляется, сценарий и не будет обслуживаться статическим обработчиком файла

После некоторого исследования , мне кажется, что мне нужно зарегистрировать обработчик WCF. используя следующие шаги:

  1. Откройте Visual Studio командной строки (как администратор)
  2. Перейдите к "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation,"
  3. Run ServiceModelReg -i
1

Некронирование.
Если у вас нет конфигурационных разделов system.web.extensions или записей обработчика/модуля в вашем web.config, эта проблема вызвана тем, что вы/кто-то еще скопировали VisualStudio-Project (2013/2015/2017) пока скрытые файлы не скрыты.

Из-за этого, он будет копировать не только .git, но и .VS, который содержит IIS-Экспресс ApplicationHost.config файл, который указывает на файлы web.config на пути, которые не существуют (или еще хуже, пути, которые действительно существуют, но не имеют то же содержание) ...

Решение:
Удалите файл applicationhost.config в папке .VS.
Или просто удалите папку .VS.
Visual Studio будет воссоздавать его.

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