Проблема с Config Group при обновлении до .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 недели и нет ответов ... блин.=)
Решение
Как у меня не было ответов, и обширное гугулирование никому не было, я решил придерживаться своего оригинального исправления (добавляя раздел System.Web.extension в Web.config).
Другие советы
Я в последнее время столкнулся с этим вопросом и смог решить его после некоторого устранения неполадок.Надеюсь, что я тоже поможет исправить вашу проблему. 1. Убедитесь, что пул приложения, который вы используете для сайта, используют трубопровод .NET 4 2. Откройте свой .csproj (или .vbproj, если ваш проект VB) в блокноте и прохождете файл и проверьте, есть ли какие-либо жесткие ссылки на Framework forments.В моем случае у нас была задача «После сборки», которая использовала путь компилятора V2.0, который заставил приложение все еще использовать 2,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 GruoudGroup - это версия= 3.5.0.0 здесь и Version= 4.0.0.0 в Machine.config. 1.
- Ошибка в журнале событий - это не удалось загрузить все фильтры ISAPI для сайта ... »Может ли установить System.Web.extensions, которые не зарегистрированы должным образом с .NET 4?
Я хотел бы тестировать больше на это, но, к сожалению, я вижу только это поведение в производственной системе, а не системе Dev.