2013-05-02 4 views
15

Ho un problema ELMAH. Penso che sia la stringa di connessione, ma non riesco a capire perché. Mi sta inviando messaggi di posta elettronica senza problemi, ma non li ho loggati in sql. Se il problema è permessi, come posso rilevare un errore per mostrarmi un problema di autorizzazione? Ecco la sezione relativa ELMAH del mio web.config:ELMAH Accesso in SQL Server

<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" /> 
    <section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah" /> 
</sectionGroup> 

<connectionStrings> 
<add name="ErrorLog" connectionString="Data Source=SQL1;Initial Catalog=ASBESTOS;User Id=MyUserName;Password=MyPassword" providerName="System.Data.SqlClient" />  

<system.web> 
    <httpModules> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
    </httpModules> 
</system.web> 
<system.webServer> 
<modules runAllManagedModulesForAllRequests="true"> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" /> 
</modules> 
<validation validateIntegratedModeConfiguration="false" /> 

<elmah> 
    <security allowRemoteAccess="1" /> 
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ErrorLog"/>  
    <errorMail from="[email protected]" to="[email protected]" subject="Asbestos Error Log" async="true"></errorMail> 
    </elmah> 
    <location path="elmah.axd" inheritInChildApplications="false"> 
    <system.web> 
     <authorization> 
     <allow roles="System" /> 
     <deny users="*" /> 
     </authorization> 
     <httpHandlers> 
     <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
     </httpHandlers> 
    </system.web> 
    <system.webServer> 
     <handlers> 
     <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" /> 
     </handlers> 
    </system.webServer> 
    </location> 

risposta

18

tuo config sembra buono. Ho avuto lo stesso problema in cui non era la registrazione. Ho dovuto aggiungere le autorizzazioni di esecuzione sui proc memorizzati con Elmah con le credenziali che stavo usando per connettermi al DB.

+2

Ugh. Sono un idiota. A metà del progetto, sono passato a Code First e ho ricostruito il database diverse volte, INCLUSA la tabella ELMAH, che ha comportato la modifica delle autorizzazioni per la tabella. Quindi, il tuo consiglio sulle autorizzazioni è corretto. Grazie. –

+1

Quindi utile. Cordiali saluti la sintassi per aggiungere autorizzazioni di esecuzione è: GRANT EXECUTE ON [StoredProcName] TO [UserName] – Bern