IIS7 배포- 'system.web.extensions / scripting / scriptResourceHandler'섹션 복제


209

프레임 워크 섹션이 4.0으로 설정된 IIS7의 기본 앱 풀에 .net 3.5 웹 사이트를 배포하려고하면 다음 오류가 발생합니다.

중복 된 'system.web.extensions / scripting / scriptResourceHandler'섹션이 정의되어 있습니다.

문제의 행을 주석 처리해도 도움이되지 않았습니다. 내가해야하거나보아야 할 것에 대한 조언이 있습니까?

답변:


338

.net 4.0에서 실행되는 응용 프로그램 풀이있는 IIS에 배포하려는 경우 .net 3.5를 가리키는 모든 섹션이 포함 된 web.config를 정리해야합니다. 이것이 실패하는 이유는 이러한 섹션 정의가 모든 시스템을 포함하는 .NET 4.0의 루트 web.config (% windir % \ microsoft.net \ framework \ v4.0.30319 \ config \ machine.config 참조)에 이미 포함되어 있기 때문입니다. 이미 선언 된 web.extensions

또 다른 빠른 수정 사항은 개발 시스템에있는 것처럼 응용 프로그램 풀을 2.0으로 설정하는 것입니다.


감사. 나는 실제로 더 많은 것을 땜질 한 후에이 해결 방법을 알아 냈습니다 ..
user20358

3
이것을 설명해 주셔서 감사합니다. 구성 파일에서 섹션을 제거하는 솔루션을 계속 보았으며 "구성 파일의 일부를 솔루션으로 자르는 방법"이 궁금합니다.
Adam Bruss

13
내 APP POOL이 4.0 INSTEAD 2.0으로 설정되었습니다!
RolandoCC

1
그것은 쉬웠습니다.이 오래된 사이트를 2.0 앱 풀로 전환하면 비올라가 작동합니다! 감사!
mgrenier

1
web.config에서 .net 3.5 섹션을 제거하면 나에게
Anand

49

나를위한 해결책은 응용 프로그램 풀의 .NET 프레임 워크 버전을 기본 응용 프로그램 풀의 v4.0에서 v2.0으로 변경하는 것이 었습니다.

여기에 이미지 설명을 입력하십시오


13
실제로 응용 프로그램에서 .NET 4.0을 사용하고 있다면?
Michael Paulukonis

3
@MichaelPaulukonis이 문제가 발생했습니다. 루트 웹 사이트에 web.config가 내 웹 사이트에서 상속받은 것으로 나타났습니다.
guanome

@MichaelPaulukonis, 그런 일이 일어날 것입니다!
DaveDev

내 앱이 3.5에서 4.0으로 업그레이드되고 앱 풀이 올바르게 업데이트되었지만 web.config가 오래되었을 때이 문제가 발생했습니다. Web.config는 4.0 이후부터는 기본적으로 명시 적으로 추가 할 필요가없는 모든 섹션 그룹을 추가하려고했습니다.
drizin

48

나와 같이 v4를 타겟팅해야하지만 .net 3.5로만 빌드 할 수있는 경우 여기 의 지침을 따르십시오 . web.config에서 <configSections>with 의 전체 내용을 바꾸십시오 .

<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>


3
당신의 것이 내 오류를 해결 한 유일한 솔루션이었습니다! 고마워요!
Devdatta Tengshe

1
이것은 내 문제도 해결했습니다. 서버는 IIS6을 IIS7.5로 업그레이드했습니다. IIS6에서는 v4.0에서 실행되었지만 IIS7.5에서는이 web.config 변경이 필요했습니다.
johna

이것은 굉장했다.
mzonerz

PublicKeyToken의 값은 대소 문자를 구분합니다 (대답과 비슷해야 함). 나는 대문자로 내 것을 가지고 있었고 작동하지 않았다.
Björn

3

.net 4.0 결함에 대한 문제 해결 방법 : Solicon : 관리자 IIS 서버에 대한 변경 사항 establecer valores de grupos de aplicaciones를 입력하십시오! [여기에 이미지 설명 입력] [1] y cambiar la vercion del framework! [이미지 설명 입력] 여기] [2]

중앙 관리 2010 중앙 관리 시스템 문제 해결

----- Google 번역을 통해 -----

풀이 기본값이기 때문에 문제가 발생합니다. Net 4.0 솔루션 : 서버 IIS 관리자로 들어가서 응용 프로그램 풀의 오른쪽에 값을 설정하십시오.! [여기에 이미지 설명 입력] [1] 및 프레임 워크 버전 변경! [여기에 이미지 설명 입력] [2]

SharePoint 중앙 관리 2010 설치 문제를 해결해야합니다.


22
StackOverflow에 오신 것을 환영합니다! 영어 실력이 충분하지 않으면 Google 번역을 통해 답변을 실행하십시오 . 커뮤니티는 편집을 통해 이상한 문구를 향상시킵니다. 답변 주셔서 감사합니다. ||||| Google 번역을 통해 ||||| 비엔 베니도 StackOverflow! Google은 Google 번역 서비스를 통해 무료로 제공되는 정보를 사용하지 않았습니다 . La comunidad mejorará는 extrañas en la edición를 골라냅니다. Respuesta의 Gracias.
Andrew Kozak


3

괴롭힘.
web.config에 system.web.extensions 구성 섹션 또는 처리기 / 모듈 항목이없는 경우이 문제는 숨겨져있는 동안 다른 사람이 VisualStudio-Project (2013/2015/2017) 복사했기 때문에 발생합니다. -숨겨지지 않은 파일 .

그 때문에 .git뿐만 아니라 존재하지 않는 경로 (또는 더 나쁜 경로는 존재하지만 더 나쁜 경로에서는 web.config 파일을 가리키는.VS IIS-Express applicationhost.config 파일 이 들어있는 .git도 복사 합니다) 같은 내용이 없습니다) ...

해결 방법 :
.VS 폴더에서 applicationhost.config 파일을 삭제하십시오.
또는 .VS 폴더를 모두 삭제하십시오.
Visual Studio에서 다시 만듭니다.


탁월한 설명
William Bello

2

내 응용 프로그램은 ASP.Net3.5 응용 프로그램이었습니다 (프레임 워크 버전 2 사용). ASP.Net3.5 앱이 만들어지면 Visual Studio는 자동으로 scriptResourceHandler를 web.config에 추가했습니다. .Net의 이후 버전은 이것을 machine.config에 넣습니다. 버전 4 앱 풀을 사용하여 ASP.Net 3.5 앱을 실행하면 (설치 순서에 따라 기본 앱 풀임)이 오류가 발생합니다.

버전 2.0 앱 풀 사용으로 옮길 때 오류가 사라졌습니다. 그런 다음 WCF .svc를 제공 할 때 오류를 처리해야했습니다.

HTTP 오류 404.17-찾을 수 없음 요청 된 컨텐츠가 스크립트 인 것으로 보이며 정적 파일 핸들러에서 제공하지 않습니다.

조사 후 WCF 처리기를 등록해야합니다. 다음 단계를 사용하십시오.

  1. 관리자 권한으로 Visual Studio 명령 프롬프트를 엽니 다.
  2. "C : \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation"으로 이동하십시오.
  3. servicemodelreg -i를 실행하십시오.


1

필자의 경우 전체 솔루션 (Target Framework Migrator라는 확장명을 사용하여)을 4.6.2로 변환했지만 변경 사항을 취소하고 3.5로 돌아갔습니다 (솔루션은 TFS에서 버전이 지정됨). 이 문제를 해결하기 위해 IIS Express를 사용하여 문제가 발생한 프로젝트를 4.6.2로 변환 한 다음 다시 3.5로 변환했습니다.


감사. 되돌 리거나 변경을 취소하면 앱이 .NET 3.5 상태로 올바르게 전환되지 않는 것 같습니다.
Iman

0

다른 사람을 도울 수있는이 문제를 피하는 또 다른 방법은 가능한 경우 .net 웹 서비스를 버전 4.0 이상으로 빌드하는 것입니다.


0

제 경우에는 동일한 앱 풀을 공유하는 2 개의 다른 앱이있었습니다. 첫 번째는 .net4.5 프레임 워크를 사용하고 새로운 것은 2.0을 사용했습니다. 두 번째 앱을 자체 앱 풀로 변경하면 web.config를 변경하지 않고도 제대로 작동하기 시작합니다.


0

나의 결의는 어리석은 것이었다.

  • .net 3.5의 사본을 설치했습니다

  • 다른 앱 풀을 만들고 .net 3.5를 선택했습니다 (드롭 다운에 2.0.5077이라고 표시됨)

  • 해당 앱 풀에 내 웹 사이트를 추가했습니다.

  • 이전 및 새 풀을 재활용하고 사이트가 작동하기 시작했습니다.

Windows 기능 켜기에서 내가 말한 것처럼 사용할 3.5 응용 프로그램 풀을 만들었지 만 3.5가 설치되어 있지 않았습니다. 이것이 다른 사람들에게 도움이되기를 바랍니다.


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

다음 단계를 수행하여 해결했습니다.

  1. IIS에서 새 응용 프로그램 그룹을 만들었습니다.
  2. 이 문제가 발생한 사이트 또는 웹 응용 프로그램의 고급 설정을 엽니 다.
  3. 새 응용 프로그램 그룹을 설정하십시오.

다음은이 단계의 이미지입니다.

새로운 응용 프로그램 그룹 만들기

응용 프로그램 그룹을 만든 후

사이트 또는 웹앱에서 응용 프로그램 그룹 설정


0

이 오류 메시지는 다양한 상황에서 나타나는 것 같습니다.

필자의 경우 응용 프로그램의 Web.Config 파일 위에 루트 폴더 (C : \ Inetpub \ www.root)에 추가 Web.Config 파일이 있습니다. 아마도 몇 가지 테스트를 마친 후에 떠났을 것입니다.

그것을 제거하면 문제가 해결되었습니다.


0

이것은 아마도 당신에게 잘못된 대답 일 것입니다. 그러나 이것은 내 문제를 해결하려고 시도했을 때 Google에서 처음으로 맞았습니다. 그 말로 ...

나에게도 동일한 오류 메시지가 발생했지만 Visual Studio를 통해 IIS Express를 실행하려고 할 때.

내 문제는 실수로 applicationhost.config 를 TFS에 커밋한다는 것 입니다. 나중에 최신 커밋을 얻은 후 랩톱에서 프로젝트를 실행하려고했을 때. 그때 오류가 발생했습니다.

가상 디렉터리 경로가 잘못되었음을 알았습니다.

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

이것이 누군가를 돕기를 바랍니다!

이것은 내 첫 번째 게시물이므로 부드럽게하십시오 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.