Die Azure Websites sind in der Handhabung sehr simpel, dennoch kann man leicht neue Instanzen dazuschalten. Doch was macht man, wenn ein Fehler passiert?
Azure Website Konfiguration
Unter den Einstellungen der Azure Websites kann man 3 Diagnose-Tools anschalten:
- Detailed Error Logging – Turn on detailed error logging to capture all errors generated by your web site.
- Failed Request Tracing – Turn on failed request tracing to capture information for failed client requests.
- Web Server Logging – Turn on Web Server logging to save web site logs using the W3C extended log file format. </ul>
Quelle: How to monitore web sites
Wo werden diese Logs gespeichert?
Die Logs werden in einem Verzeichnis auf der Maschine abgelegt, welches über FTP zugänglich ist. Dafür in das “Dashboard” wechseln und dort nach “FTP DIAGNOSTIC LOGS” suchen. Der Deployment-User (der auch das Git-Deployment übernimmt) wird dort als Login gebraucht!
Ich benötige weitere Logging- / Exception-Informationen
Leider sind die Error-Pages nicht wirklich immer zielführend, daher kommt man relativ schnell zu dem Punkt an dem man ein Logging Framework benötigt.
ELMAH to the rescue!
Ich hatte mich schnell für ELMAH entschieden, samt der zusätzlichen ASP.NET MVC Integration:
Dann noch den XmlFile-Provider einhängen in der web.config:
<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>
Dann kann man auch via der FTP Seite sich bis zur Seite und dem App_Data Verzeichnis navigieren:
Natürlich würde auch Log4Net oder NLog funktionieren.
Damit sollte es auch mit dem Debugging klappen ;)
Fazit:
Die Azure Websites verhalten sich sehr ähnlich wie eine normale Web-Anwendung auf einem normalen IIS, daher gelten hier fast die selben Bedingungen. Hier ist kein völlig anderes Vorgehen wie bei den Cloud Services (mit den Table Storage und den Diagnostics) von nöten.