Trasferendo una web application ASP.NET da Windows 2008 server con IIS 7.5 a Windows Server 2012 con IIS 8.0 può capitare di riscontrare il seguente messaggio di errore
There is a duplicate 'system.web.extensions/scripting/scriptResourceHandler' section defined
Due soluzioni possibili:
1) L’applicazione è assegnata ad un’ Application Pools non appropriato:
I progetti sviluppati con i frameworks dalla versione 2.0 alla verione 3.5 vanno assegnati ad un Application Pools con .NET FRAMEWORK VERSION v2.0.xxxx
I progetti sviluppati con in 4.0 e seguenti vanno assegnati ad un Application pools con .NET FRAMEWORK VERSION v4.0.xxxxx
Application Pools in Windows 2012 server con IIS 8.0
2) Disabilitare commentando con <!– –> le righe della sezione <sectionGroup name=”system.web.extensions”…> per le quali viene presentato il messaggio. Valutare adirittura di estendere il commento a tutta la sezione system.web.extension presente all’inizio ovviamente del file di configurazione web.config.
Esempio di commento
<!–section name=”scriptResourceHandler” type=”System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″ requirePermission=”false” allowDefinition=”MachineToApplication” /–>
Una volta commentate le righe ho sperimentato il funzionamento di applicazioni ASP.NET versione 3.5 anche una volta associate ad Application Pools 4.0
... <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> ...
Risorse: