Pregunta

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

Cuando corrimos el sitio, obtuvimos un error interno del servidor (500), que indicamos que no se pudo leer el siguiente grupo de configuración:

<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 corrió bien (pero ahora estamos obteniendo problemas con JSON, debido a la propiedad requerida anteriormente).

Hemos leído hilos en este número, y la mayoría de ellos dicen "Su grupo de aplicaciones no está ejecutando 4.0". Y es, por lo que ese no es el problema.

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

Con .NET 4, como sabe, muchas de las secciones de Web.Config se han movido a Machine.Config.

Así que ponemos esta sección en la parte superior de la 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 ideas? ¿Es esta la solución correcta?

Editar:

3 semanas y sin respuestas ... Maldición.=)

¿Fue útil?

Solución

Como no he tenido respuestas, y tampoco resultó en ningún amor, he decidido seguir mi solución original (agregando la sección System.Web.Extensions. Volver a la sección web.config).

Otros consejos

Corrí a este tema recientemente y pude resolverlo después de alguna solución de problemas.Espero que lo que hice ayude a solucionar su problema también. 1. Asegúrese de que el grupo de aplicaciones que esté ejecutando para el sitio está usando .NET 4 PIPEELINE 2. Abra su .csproj (o .vbproj si el suyo es un proyecto VB) en Bloc de notas y recorrer el archivo y verifique si hay alguna referencias codificadas con los archivos Framework v2.0.En mi caso, tuvimos una tarea "después de la construcción" que utilizó la ruta del compilador V2.0, que obligó a la aplicación para usar el tiempo de ejecución 2.0.Era 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 hacerlos confiarlos. Espero que ayude.

-vamsi

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

  1. La única diferencia con respecto a la sección anterior y mi máquina de la máquina es la versión= 3.5.0.0 aquí y la versión= 4.0.0.0 en la máquina.config. 1.
  2. El error en el registro de eventos es "No se pudo cargar todos los filtros ISAPI para el sitio ..." ¿Podría haber una instalación de System.Web.Extensions que no está registrada correctamente con T.NET 4?
  3. Me encantaría probar más sobre esto, pero desafortunadamente solo veo este comportamiento en un sistema de producción y no un sistema de dev.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top