Ecco un breve riepilogo delle sezioni principali aggiunte al file web.config per l'utilizzo di Asp.Net ajax nelle nostre applicazioni WEB:
Ci sono 7 sezioni da modificare per modificare una applicazione web in modo da abilitare le estensioni AJAX:
- La prima sezione da modificare è la sezione <configSections> che definisce configuration sections addizionali necessarie per ASP.Net Ajax
<configSections>
<sectionGroup name=”system.web.extensions”
type=”System.Web.Configuration.SystemWebExtensionsSectionGroup,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”>
<sectionGroup name=”scripting”
type=”System.Web.Configuration.ScriptingSectionGroup,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”>
<section name=”scriptResourceHandler”
type=”System.Web.Configuration.ScriptingScriptResourceHandlerSection,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35” requirePermission=”false”
allowDefinition=”MachineToApplication”/>
<sectionGroup name=”webServices”
type=”System.Web.Configuration.ScriptingWebServicesSectionGroup,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”>
<section name=”jsonSerialization”
type=”System.Web.Configuration.ScriptingJsonSerializationSection,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35” requirePermission=”false”
allowDefinition=”Everywhere” />
<section name=”profileService”
type=”System.Web.Configuration.ScriptingProfileServiceSection,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35” requirePermission=”false”
allowDefinition=”MachineToApplication” />
<section name=”authenticationService”
type=”System.Web.Configuration.ScriptingAuthenticationServiceSection,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35” requirePermission=”false”
allowDefinition=”MachineToApplication” />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
- La sezione <controls> situato nella sezione <pages> all'interno della sezione <system.web> per avere a disposizione in tutte le pagine i nuovi controlli messi a disposizione da Ajax (UpdatePanel, ScriptManager ecc. ecc.)
<add tagPrefix=”asp” namespace=”System.Web.UI”
assembly=”System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”/>
- Per fare funzionare correttamente la refernza ai nuovi controlli asp.net Ajax la dll delle estensioni ajax devono essere refernziate correttamente dall'applicazione web. Tale referenza può essere indicata nella sezione <assemblies> all'interno della sezione <compilation> anch'essa all'interno della sezione <system.web>
<compilation debug=”false”>
<assemblies>
<add assembly=”System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”/>
</assemblies>
</compilation>
- ASP.Net Ajax ha bisogno di numerosi handler per funzionare correttamente, bisogna quindi aggiungere o modificare i seguenti handler nella sezione <httpHandlers> all'interno della sezione <web.config>
<httpHandlers>
<remove verb=”*“ path=”*.asmx”/>
<add verb=”*“ path=”*.asmx” validate=”false”
type=”System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”/>
<add verb=”*“ path=”*_AppService.axd” validate=”false”
type=”System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”/>
<add verb=”GET,HEAD” path=”ScriptResource.axd”
type=”System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
validate=”false”/>
</httpHandlers>
- Inoltre per alcune delle sue funzionalità di scripting ASP.Net ajax ha bisogno di alcuni HTTP Module. Bisognerà quindi aggiungere o modificare la sezione <httpModules> all'interno della sezione <web.config>
<httpModules>
<add name=”ScriptModule” type=”System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”/>
</httpModules>
- Esiste inoltre un'altra sezione, all'interno della "root" <configuration>, opzionale, per ulteriori configurazioni. Tale sezione è la <system.web.extensions>
<system.web.extensions>
<scripting>
<webServices>
</webServices>
</scripting>
</system.web.extensions>
- Infine la sezione <system.webServer> serve per alcune configurazioni per IIS7, tale sezione è opzionale, naturalmente è inutile nel caso di deploy in versioni precedenti di IIS
<system.webServer>
<validation validateIntegratedModeConfiguration=”false”/>
<modules>
<add name=”ScriptModule” preCondition=”integratedMode”
type=”System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35”/>
</modules>
<handlers>
<remove name=”WebServiceHandlerFactory-Integrated” />
<add name=”ScriptHandlerFactory” verb=”*“ path=”*.asmx”
preCondition=”integratedMode”
type=”System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”/>
<add name=”ScriptHandlerFactoryAppServices” verb=”*“ path=”*_AppService.axd”
preCondition=”integratedMode”
type=”System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”/>
<add name=”ScriptResource” preCondition=”integratedMode” verb=”GET,HEAD”
path=”ScriptResource.axd” type=”System.Web.Handlers.ScriptResourceHandler,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35” />
</handlers>
</system.webServer>
Con queste modifiche l'applicazione WEB è pronta per l'utilizzo dei controlli ASP.Net Ajax.