2011-08-15 2 views
3

Configuration simple, j'utilise ELMAH pour enregistrer des exceptions et m'envoyer des e-mails. Tout fonctionne correctement sur ma machine locale, mais lorsque je mets les modifications sur mon serveur de production, les erreurs ne sont pas enregistrées et je n'ai pas d'e-mails.ELMAH fonctionne sur machine locale, mais pas sur production

Voici mon web.config sur ma machine locale:

<?xml version="1.0"?> 
<configuration> 
    <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> 

    <elmah> 
     <security allowRemoteAccess="0" /> 
     <errorLog type="Elmah.SqlErrorLog, Elmah" 
      connectionStringName="MyDB" /> 
     <errorMail from="[email protected]" to="[email protected]" 
      subject="Error" smtpServer="localhost" smtpPort="25" 
      userName="[email protected]" password="mypassword" /> 
    </elmah> 

    <connectionStrings> 
     <add name="MyDB" connectionString="Data Source=.\SQLEXPRESS 
      AttachDbFilename=|DataDirectory|\MyDB.mdf; 
      Integrated Security=True;User Instance=True; 
      MultipleActiveResultSets=True" 
      providerName="System.Data.SqlClient" /> 
     <!--<add name="MyDB" connectionString="Server=mysite.com; 
      Database=MyDB;User ID=user;Password=mypassword; 
      Trusted_Connection=True;Integrated Security=False; 
      MultipleActiveResultSets=True" 
      providerName="System.Data.SqlClient" />--> 
    </connectionStrings> 

    <system.web> 
     <!--<httpHandlers> 
      <add verb="POST,GET,HEAD" path="elmah.axd" 
       type="Elmah.ErrorLogPageFactory, Elmah" /> 
     </httpHandlers>--> 
     <httpModules> 
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
     </httpModules> 
    </system.web> 

    <location path="Admin/Errors"> 
     <system.web> 
      <httpHandlers> 
       <add verb="POST,GET,HEAD" path="elmah.axd" 
        type="Elmah.ErrorLogPageFactory, Elmah" /> 
      </httpHandlers> 
     </system.web> 
    </location> 
</configuration> 

La seule différence entre le web.config sur ma machine et sur la production est la chaîne de connexion utilisée. Sur ma machine, je me connecte à un fichier .mdf. En production, je me connecte à une base de données externe.

Quelqu'un peut-il voir ce que je fais mal ici?

J'utilise C# et ASP.NET MVC 3

+0

Quelle version d'IIS est votre serveur de production en cours d'exécution? – NotMe

+0

Ce commentaire est pour quelqu'un d'autre qui pourrait avoir le même problème. N'oubliez pas d'avoir les 3 procédures stockées créées sur le serveur de production. (ELMAH_GetErrorsXml, ELMAH_GetErrorXml et ELMAH_LogError et que l'accès est fourni pour l'utilisateur DB). J'espère que cela aide quelqu'un. – ProgrammerV5

Répondre

9

Vous devez définir allowRemoteAccess = "yes" pour l'accès à distance.

<elmah> 
    <security allowRemoteAccess="yes"/> 
    </elmah> 

Et vérifiez la page d'administration de ELMAH pour voir si cela vous aide.

accès Exemple: http://prodserver/elmah.axd

+0

Hmmm, bien il semble y avoir un problème, même la page elmah.axd ne chargera pas sur la production, je reçois une erreur 404. Mais cela fonctionne sur ma machine locale. Une raison qui pourrait arriver? – Steven

+0

404 est introuvable, ce qui signifie qu'il ne s'agit pas d'un problème d'autorisations, mais d'un problème de configuration/d'installation. Est-ce que elmah est installé sur le serveur? –

+0

@Philipp - Oui, j'ai le .dll sur le serveur. – Steven

Questions connexes