Sviluppando una Web Application, è possibile usare Visual Studio 2013.3 per aggiungere automaticamente tutte le librerie e le configurazioni di cui “Azure Application Insights” ha bisogno pre funzionare.
Ma invece per quanto riguarda i Web Sites? Se si crea un Web Site (oppure si vuole modificarne o gestirne uno già esistente) l’opzione per aggiungere l’Application Insights non è presente. Cosa possiamo fare, quindi? Com’è possibile raggiungere lo stesso risultato? Come possiamo integrare Azure Application Insights in un Web Site?
È possibile! Basta seguire questi step:
-
Creare un nuovo servizio “Application Insights” usando il nuovo Azure portal (preview)
-
Copiare lo snippet di codice JavaScript che viene proposto dal portale ed aggiungerlo a tutte le pagine che si vogliono monitorare (oppure alla master page, se ce n’è una)
-
In Visual Studio 2013.3, creare una nuova web application vuota ed aggiungere ad essa Application Insights usando il menu contestuale
-
Copiare i seguenti file dalla cartella “bin” della Web App alla cartella “bin” del Web Site:
Microsoft.ApplicationInsights.dll
Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry.dll
Microsoft.ApplicationInsights.Extensibility.Web.dll
Microsoft.Diagnostics.Tracing.EventSource.dll
(volendo è possibile anche copiare i relativi file .xml e .pdb) -
Tornare nell’Azure portal (preview), andare nella sezione dell’Application Insights creato precedentemente, cliccare sul bottone “Properties” e copiare il valore della texbox “Instrumentation Key”
-
Copiare il file ApplicationInsights.config dalla root della Web App alla root folder del Web Site
-
In questo file, sostituire il valore della chiave “InstrumentationKey” con quello copiato al punto 5
-
Cambiare il file web.config del website aggiungendo le seguenti righe:
<system.web>
[...]
<httpModules>
[...]
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Extensibility.Web.RequestTracking.WebRequestTrackingModule, Microsoft.ApplicationInsights.Extensibility.Web" />
[...]
</httpModules>
[...]
</system.web>
<system.webServer>
[...]
<validation validateIntegratedModeConfiguration="false" />
[...]
<modules runAllManagedModulesForAllRequests="true">
[...]
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Extensibility.Web.RequestTracking.WebRequestTrackingModule, Microsoft.ApplicationInsights.Extensibility.Web" preCondition="managedHandler" />
[...]
</modules>
[...]
</system.webServer>
A questo punto è possibile avviare e testare il Web Site e, dopo qualche secondo, i dati e le statistiche saranno presenti nella blade dell’Application Insights (sempre sul nuovo Azure portal)
Login