Français

English

Nous avons vu dans le billet précédent comment réutiliser du code pour avoir une librairie qui puisse écrire des traces à travers Windows Azure Service Bus.
Nous allons maintenant voir comment inclure cette librairie dans une application.

Créons une nouvelle application dans les nuages, avec Visual Studio (ici on utilise Visual Studio 2010, mais on pourrait aussi le faire avec Visual Studio 2008 et le SDK d’Azure).
On prend une application ASP.NET MVC 2 dans un Web Role, mais les princiupes resteraient les mêmes avec d’autres types d’applications.
We’ve seen in a previous post how to reuse code to have a library that can trace thru the Windows Azure Service Bus.
We will now see how to include this in an Azure application.

Let’s create a new cloud application, in Visual Studio (we use Visual Studio 2010, but that could also be done with Visual Studio 2008 and the Azure SDK).
We take an ASP.NET MVC 2 Web Role only application, but the principles would remain the same with other types of applications.

image

image

image

Dans la solution, on inclut les sources du projet TraceListener (voir billet précédent) In the solution, let’s include the sources of TraceListener project (cf previous post)

image

image

image

On ajoute une référence au trace listener dans le projet MvcWebRole1 Let’s add reference to the trace listener into the MvcWebRole1 project

 image

image

On notera que la référence a sa propriété CopyLocal qui vaut True, ce qui est important pour que la DLL soit copiée vers Azure lors du déploiement Notice that the reference has CopyLocal set to true which is important to have the DLL copied to Azure when you deploy

image

Comme les Windows Azure Web roles n’ont pas le SDK du Azure Service Bus, on doit aussi ajouter une référence à Microsoft.ServiceBus.dll qui est typiquement à C:\Program Files\Windows Azure platform AppFabric SDK\V1.0\Assemblies\Microsoft.ServiceBus.dll, puis on met sa propriété CopyLocal à True As Windows Azure web roles don’t have Azure Service Bus SDK, we must also add a reference to the Microsoft.ServiceBus.dll which is typically in C:\Program Files\Windows Azure platform AppFabric SDK\V1.0\Assemblies\Microsoft.ServiceBus.dll, and set its CopyLocal property to True.

image  image

 

On change ensuite la façon dont l’application écrit ses traces.
Dans le projet MvcWebRole1, on ouvre le fichier Web.config pour remplacer
Now, let’s change how the application writes traces.
In project MvcWebRole1, open Web.config and replace

 

 

 

 

 

image

par by

image

 

On peut aussi commenter la ligne par défaut qui démarre the DiagnosticMonitor, dans MvcWebRole1\WebRole.cs: We can also comment out the default DiagnosticMonitor start, in MvcWebRole1\WebRole.cs:

image

On devra également fournir au cloud trace listener les paramètres appSettings dont il a besoin. Pour cela, remplacer la section vide <appSettings/> par une section comme celle qui suit (remplacer *** par votre propre clef secrète). We will also need to provide cloud trace listener with its appSettings. For that replace the empty <appSettings/> section by one like the following (replace *** by your own secret key).

 

 

 

 

 

<appSettings>
  <add key="CloudTraceServicePath" value="samples/traces"/>
  <add key="CloudTraceServiceNamespace" value="benjguin"/>
  <add key="CloudTraceIssuerName" value="AzureTraceWriter"/>
  <add key="CloudTraceIssuerSecret" value="***"/>
  <add key="CloudHttpWebProxy" value=""/>
  <add key="CloudTracePrefix" value="[TraceFromMyAzureWebRole]"/>
  <add key="CloudIgnoreTraceExceptions" value="true"/>
</appSettings>

 

De façon à tester les traces, on ajoute des traces dans HomeController.cs In order to test the traces, let’s add traces in the HomeController.cs

image

Notons qu’il pourrait aussi être intéressant d’en ajouter dans le fichier WebRole.cs.

On peut maintenant démarrer la TraceConsole et tester l’exécution de l’application web dans la development fabric locale. Si votre PC accède à Internet à travers un proxy HTTP, il peut être nécessaire de changer la configuration avant de tester:
Note that it could also be interesting to add traces in the WebRole.cs file.

We now can start the TraceConsole, and test the Web App in the local development fabric. If your PC accesses the Internet thru a proxy, you may need to change configuration before testing:

 

image

Cette valeur devra être remise à “” avant le déploiement dans Azure. The value will need to be set back to “” before deploying to Azure.

image

Chaque fois qu’on clique sur About, on a une nouvelle ligne de trace dans l’AzureTraceReader.

Après avoir remis l’appSetting CloudHttpWebProxy à “”, on publie dans Azure
Each time you click on About, you get a new trace line in AzureTraceReader.

After putting CloudHttpWebProxy appSetting back to “”, let’s publish to Azure

image

image

image

image

image

On clique sur Run Clic Run

image

image

Cliquer sur l’URL pour tester l’application Web et voir les traces dans le même console où on avait précédemment les traces de dév! Clic the URL to test the Web application and see the traces in the same console where you previously got the dev traces!

 

 

 

 

 

 

image

:-)

Benjamin