2009-05-06 17 views

Respuesta

5

Utilizamos ELMAH en nuestro entorno MOSS 2007. Como ELMAH usa HttpHandlers y está configurado a través de web.config, activarlo fue muy fácil. Simplemente agregue las cosas de ELMAH a web.config para la aplicación que está ejecutando dentro de SharePoint.

Si desea ELMAH para informar de errores en un nivel más alto que su aplicación personalizada, a continuación, agregarlo a la SharePoint web.config.

+0

cosas excelentes! Gracias. Entonces, si no atrapas una excepción en el código, se moverá por la tubería hasta que ELMAH lo capture y lo registre. – Rob

+0

Sí, eso es exactamente lo que sucede. También puede registrar excepciones manejadas en ELMAH también. –

+1

¿Dónde has desplegado tu dll? Me gustaría implementar en el GAC para cubrir todos nuestros sitios web. – Rob

0

No hay magia a ella, simplemente conectarlo al igual que lo haría en cualquier otro sitio ASP.NET.

9

Una cosa que es importante al configurar ELMAH, o la mayoría de httpModules en Sharepoint es que tienen que estar al principio de la sección httpModules. De lo contrario SharePoint se tragará esencialmente la excepción y funcionalidad ELMAH no será invocado

Obras

<clear /> 
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/> 
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> 
<add name="SPRequest" type="Microsoft.SharePoint.ApplicationRuntime.SPRequestModule, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> 
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" /> 
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> 
    ... Rest of SharePoint modules.... 

No funciona

<clear /> 
<add name="SPRequest" type="Microsoft.SharePoint.ApplicationRuntime.SPRequestModule, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> 
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" /> 
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> 
    ... Rest of SharePoint modules.... 
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/> 
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> 
+0

excelente consejo, gracias! – Rob

0

A continuación se presentan las entradas de configuración que necesita añadido en web.config de la aplicación web de SharePoint

Agregar en configSection

<configSections> 
    <sectionGroup name="elmah"> 

    <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" /> 

    <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> 

    <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" /> 

    <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" /> 

    </sectionGroup> 
</configSections> 

Añadir sección connectionstring

<connectionStrings> 
<add name="elmah-express" connectionString="Data Source=[server name];Initial Catalog= [ELMAH_customlogging];User ID=testuser;Password=Welcome1;" /> 

</connectionStrings> 

Añadir ELMAH sección justo debajo de la sección de connectionstring

<elmah> 

    <security allowRemoteAccess="0" /> 

    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-express" /> 
</elmah> 

Agregar controlador y la entrada en el módulo de httpHandlers y httpmodules sección bajo system.web

<httpHandlers> 

     <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> 

    </httpHandlers> 

    <httpModules> 

     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
    </httpModules> 

Añadir manejador y el módulo de entrada en la sección de controladores y módulos de bajo system.webServer

<modules runAllManagedModulesForAllRequests="true"> 

    <remove name="ErrorLog"/> 

    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 

    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" /> 

    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 

    <add name="ErrorTweet" type="Elmah.ErrorTweetModule, Elmah" preCondition="managedHandler" /> 
    </modules> 

    <handlers> 

    <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" /> 

    </handlers> 

Consulte a continuación enlace de aplicación ELMAH en SharePoint

http://sidteche.blogspot.in/2014/08/implement-elmah-custom-logging-in.html

Cuestiones relacionadas