Aby poprawnie zapisać błędy występujące w aplikacjach serwery IIS Webio mają domyślnie zainstalowany moduł ich logowania o nazwie ELMAH (http://code.google.com/p/elmah/) skompilowany w innej niż domyślna przestrzeni nazw (WebioElmah) po to aby nie zakłócać pracy bibolioteki Elmah instalowanej przez użytkowników na własną rękę. Poniższy opis przedstawia w jaki sposób należy uaktualnic plik web.config aby włączyć logowanie błędów do plików XML lub bazy danych SQLite:
| <configuration> |
| <configSections> |
| ... |
| <sectionGroup name="webioelmah"> |
| <section name="security" requirePermission="false" type="WebioElmah.SecuritySectionHandler, WebioElmah, Version=1.1.11517.0,Culture=neutral, PublicKeyToken=93297c12d98e0131"/> |
| <section name="errorLog" requirePermission="false" type="WebioElmah.ErrorLogSectionHandler, WebioElmah, Version=1.1.11517.0,Culture=neutral, PublicKeyToken=93297c12d98e0131" /> |
| </sectionGroup> |
| </configSections> |
| <webioelmah> |
| <security allowRemoteAccess="yes" /> |
| <!-- NALEŻY WYBRAĆ JEDEN TYP LOGOWANIA BŁĘDÓW --> |
| <!-- WPIS DLA LOGOWANIA BŁĘDÓW DO PLIKÓW XML:--> |
| <errorLog type="WebioElmah.XmlFileErrorLog, WebioElmah, Version=1.1.11517.0,Culture=neutral, PublicKeyToken=93297c12d98e0131" logPath="~/App_Data" /> |
| <!-- WPIS DLA LOGOWANIA BŁĘDÓW DO BAZY DANYCH SQLite:--> |
| <errorLog type="WebioElmah.SQLiteErrorLog, WebioElmah, Version=1.1.11517.0,Culture=neutral, PublicKeyToken=93297c12d98e0131" connectionStringName="WebioElmah.SQLite" /> |
| </webioelmah> |
| <connectionStrings> |
| <!-- PONIŻSZY WPIS NALEŻY DODAC W TEJ SEKCJI WYŁĄCZNIE JEŚLI WYKORZYSTYWANA JEST BAZA DANYCH SQLite--> |
| <add name="WebioElmah.SQLite" connectionString="Data Source=~/App_Data/errors.s3db"/> |
| </connectionStrings> |
| <system.web> |
| ... |
| <httpHandlers> |
| ... |
| <add verb="POST,GET,HEAD" path="WebioElmah.axd" type="WebioElmah.ErrorLogPageFactory, WebioElmah, Version=1.1.11517.0, Culture=neutral, PublicKeyToken=93297c12d98e0131" /> |
| </httpHandlers> |
| ... |
| <httpModules> |
| ... |
| <add name="ErrorLog" type="WebioElmah.ErrorLogModule, WebioElmah, Version=1.1.11517.0, Culture=neutral, PublicKeyToken=93297c12d98e0131" /> |
| </httpModules> |
| ... |
| </system.web> |
| ... |
| <system.webServer> |
| ... |
| <validation validateIntegratedModeConfiguration="false" /> |
| ... |
| <handlers> |
| ... |
| <add name="WebioElmah.axd_POST,GET,HEAD" path="WebioElmah.axd" verb="POST,GET,HEAD" type="WebioElmah.ErrorLogPageFactory, WebioElmah, Version=1.1.11517.0, Culture=neutral, PublicKeyToken=93297c12d98e0131" preCondition="integratedMode,runtimeVersionv2.0" /> |
| </handlers> |
| ... |
| <modules> |
| ... |
| <add name="ErrorLog" type="WebioElmah.ErrorLogModule, WebioElmah, Version=1.1.11517.0, Culture=neutral, PublicKeyToken=93297c12d98e0131" preCondition="managedHandler" /> |
| </modules> |
| ... |
| </system.webServer> |
| ... |
| </configuration> |
Po uaktualnieniu pliku web.config (linijki zawierające "..." oznaczają pozostałe wpisy znajdujące sie w pliku konfiguracyjnym) należy utworzyć katalog App_Data w głównym katalogu witryny, a wszystkie zapisane błędy będa widoczne pod adresem:
http://DOMENAWITRYNY/WebioElmah.axd
Aby uniemożliwić podgląd ww. strony należy zmienic jedną wartość w powyższej konfiguracji:
|
<security allowRemoteAccess="no" /> |
Jeśli aplikacja jest napisana w ASP.NET MVC należy dodać do pliku Global.asax ścieżkę do ignorowania:
| routes.IgnoreRoute("WebioElmah.axd"); |
Zamknij

