.NET 4.0으로 업그레이드 할 때 구성 그룹 문제
-
13-09-2020 - |
문제
우리는 3.5 SP1 -> .NET 4에서 사이트를 업그레이드했습니다.
사이트를 실행하면 내부 서버 오류 (500)가있어 다음 구성 그룹을 읽을 수 없습니다 :
<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="true" enableCaching="true" />
<webServices>
<jsonSerialization maxJsonLength="999999" />
</webServices>
</scripting>
</system.web.extensions>
.
우리는이 섹션을 밝혀냈다. 그리고 웹 사이트는 괜찮아 갔지만, 이제는 위의 요구 속성 때문에 JSON에 문제가 발생합니다.
이 문제에 대한 스레드를 읽었으며 대부분 "응용 프로그램 풀이 4.0을 실행하지 않아"라고합니다. 그리고 그것이 문제가 아닙니다.
또한 IIS가 훨씬 오래된 Machine.config 파일을 읽는 것은 어떻게 든 "스레드를 읽었습니다.
.NET 4, Web.config의 많은 섹션이 Machine.config로 이동 한 것처럼.
이 섹션을 Web.config의 맨 위에 놓습니다.
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
.
및 웹 사이트가 지금 작동하는 것 같습니다.
여전히, 이것이 올바른 해결책이라면 조금 걱정합니다.
어떤 아이디어 사람들이 있습니까? 이것이 올바른 수정입니까?
편집 :
3 주 및 답변 ... 젠장.=)
해결책
답변이 없었으며 광범위한 Googling은 사랑이 아니 었습니다. 원래 수정 사항 (system.web.extensions 섹션을 web.config에 다시 추가하십시오)을 선택했습니다.
다른 팁
나는 최근 에이 문제를 해결하고 일부 문제 해결 후 해결할 수있었습니다.내가 한 일이 당신의 문제를 해결하는 데 도움이되기를 바랍니다. 1. 사이트에서 실행중인 앱 풀이 .NET 4 파이프 라인을 사용하는지 확인하십시오. 2. 메모장에서 .csproj (또는 .vbproj)를 엽니 다. v2.0 framework 파일에 대한 하드 코딩 된 참조가 있는지 확인하고 파일을 봅니다.내 경우에는 앱이 2.0 런타임을 사용하는 v2.0 컴파일러 경로를 사용하는 "빌드 빌드"작업을 가졌습니다.그것은 아래와 같았습니다.
<Target Name=”AfterBuild” Condition=”’$(MvcBuildViews)’==’true’”>
<AspNetCompiler Condition=”’$(IsDesktopBuild)’ != ‘false’” VirtualPath=”temp” ToolPath=”$(WINDIR)\Microsoft.NET\Framework\v2.0.50727” PhysicalPath=”$(ProjectDir)\..\$(ProjectName)” />
<AspNetCompiler Condition=”’$(IsDesktopBuild)’ == ‘false’” VirtualPath=”temp” ToolPath=”$(WINDIR)\Microsoft.NET\Framework\v2.0.50727” PhysicalPath=”$(OutDir)\_PublishedWebsites\$(ProjectName)” />
.
v4.0으로 바꾸거나 더 나은 더 나은 것을 바꾸십시오. 희망이 도움이되기를 바랍니다.
-vamsi
도움이 될 수도 있고 할 수없는 두 가지 정보가 더 많은 정보를 제공합니다.
- 위의 섹션 그룹과 My Machine SectionGroup과 유일한 차이점은 Machine.config에서 여기 버전= 3.5.0.0이고 버전= 4.0.0입니다. 1.
- 이벤트 로그의 오류는 "사이트에 대한 모든 ISAPI 필터를로드 할 수 없습니다 ..."는 .NET 4로 제대로 등록되지 않은 System.Web.Extensions를 설치할 수 있습니다.
나는 이것에 대해 더 많이 테스트하고 싶지만, 불행히도 나는 생산 시스템에서만이 동작을 볼 수 있으며, Dev 시스템이 아닌