asp.net deployment web-config asp.net-4.0 system.web

asp.net - Problema con el grupo de configuración<system.web.extensions> al actualizar a.NET 4.0



deployment web-config (3)

Así que hemos actualizado nuestro sitio desde 3.5 SP1 -> .NET 4.

Cuando ejecutamos el sitio, obtenemos un Error interno del servidor (500), indicando que el siguiente grupo de configuración no se pudo leer:

<system.web.extensions> <scripting> <scriptResourceHandler enableCompression="true" enableCaching="true" /> <webServices> <jsonSerialization maxJsonLength="999999" /> </webServices> </scripting> </system.web.extensions>

Comentamos esta sección y el sitio web funcionó bien (pero ahora estamos teniendo problemas con JSON, debido a la propiedad requerida anteriormente).

Hemos leído los hilos sobre este tema, y ​​la mayoría de ellos dice "Su grupo de aplicaciones no está ejecutando 4.0". Y lo es, así que ese no es el problema.

También he leído hilos diciendo que IIS de alguna manera está leyendo un viejo archivo machine.config.

Con .NET 4, como sabes, muchas de las secciones de web.config se han movido a machine.config.

Así que volvemos a poner esta sección en la parte superior de 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>

Y el sitio web ahora parece funcionar bien.

Aún así, estoy un poco preocupado si esta es la solución correcta.

¿Alguna gente de ideas? ¿Es esta la solución correcta?

EDITAR:

3 semanas y sin respuestas ... maldita sea. =)


Como no he tenido respuestas, y la búsqueda extensa en Google tampoco me ha gustado, he decidido incluir mi solución original (agregando la sección system.web.extensions a la web.config).


Dos bits más de información que pueden ayudar o no.

  1. la única diferencia con respecto a la sección anterior Grupo y mi máquina sectionGroup es la versión = 3.5.0.0 aquí y la versión = 4.0.0.0 en machine.config. 1.
  2. El error en el registro de eventos es "No se pudieron cargar todos los filtros ISAPI para el sitio ..." ¿Podría haber una instalación de System.Web.Extensions que no está registrada correctamente con .net 4?

Me encantaría probar más sobre esto, pero desafortunadamente solo veo este comportamiento en un sistema de producción y no en un sistema de desarrollo.


Me encontré con este problema recientemente y pude resolverlo después de solucionar algunos problemas. Espero que lo que hice ayude a solucionar tu problema también. 1. Asegúrese de que el grupo de aplicaciones que está ejecutando para el sitio esté utilizando .NET 4 pipeline 2. Abra su .csproj (o .vbproj si el suyo es un proyecto de VB) en el Bloc de notas y recorra el archivo y verifique si hay algún código referencias a los archivos de Framework v2.0. En mi caso, tuvimos una tarea "After Build" que usaba la ruta del compilador v2.0, lo que obligó a la aplicación a seguir utilizando 2.0 runtime. Fue como abajo.

<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)” />

Asegúrese de cambiarlos a v4.0 o incluso mejor que sean confiscables. Espero que ayude.

-Vamsi