2013-06-09 3 views
1

Lorsque je publie mon site sur Windows Azur, ELMAH n'envoie pas d'e-mails et renvoie l'erreur ci-dessous. Toute aide ou idée appréciée. Je vous remercie!Elmah n'envoie pas d'e-mails sur les erreurs s'exécutant sur les sites Web Windows Azur

Note:

Je ELMAH correctement configuré pour envoyer des emails via smtp sur hostmysite.com qui fait IIS/hébergement .NET en dehors d'Azur. J'ai également un serveur de mise en scène à la maison qui fonctionne bien. En outre, j'ai essayé le port 25,50, 587. En outre, j'ai essayé d'envoyer à un serveur de liste que je paie et également SendGrid. Dans chaque cas, cela fonctionne sur mon serveur de stockage intermédiaire et de développement, mais pas sur Azure.

ELMAH capture les erreurs dans la base de données (MS SQL et IIS dans Azure).

Voici mes paramètres de configuration:

System.Net.NetworkInformation.NetworkInformationExceptionAccess is denied 

System.Net.NetworkInformation.NetworkInformationException (0x80004005): Access is denied 
    at System.Net.NetworkInformation.SystemIPGlobalProperties.GetFixedInfo() 
    at System.Net.NetworkInformation.SystemIPGlobalProperties.get_FixedInfo() 
    at System.Net.NetworkInformation.SystemIPGlobalProperties.get_HostName() 
    **at System.Net.Mail.SmtpClient.Initialize() 
    at System.Net.Mail.SmtpClient..ctor() 
    at Elmah.ErrorMailModule.SendMail(MailMessage mail) 
    at Elmah.ErrorMailModule.ReportError(Error error)** 
    at Elmah.ErrorSignalEventHandler.Invoke(Object sender, ErrorSignalEventArgs args) 
    at Elmah.Mvc.HandleErrorAttribute.OnException(ExceptionContext context) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext  controllerContext, IList`1 filters, Exception exception) 
    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) 
    at System.Web.Mvc.Controller.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) 
    at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) 
    at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) 
    at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) 
    at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) 
    at  System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 


     <httpModules> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
... 
    </httpModules> 
     <modules> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 
... 
    </modules> 


<elmah> 
    <security allowRemoteAccess="yes" /> 
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="Elmah.Sql" /> 
    **<errorMail from="[email protected]" to="[email protected]" subject="[Site][ErrorReport-ELMAH]" async="false" smtpPort="587" smtpServer="stmp.server.com" useSsl="false" userName="user1" password="password1" noYsod="false" />** 
    </elmah> 
+0

J'ai un problème similaire (test/travail dev, la production « accès refusé ») notre environnement de mise en scène utilisé pour travailler, mais nous avons juste déplacé vers un nouvel hôte azur pour prod et mise en scène et c'est "accès refusé" pour ceux depuis. J'ai rempli un problème avec les gars Sendgrid, en attendant le résultat. – jmettraux

+0

jmettraux, Ce n'est probablement pas sendgrid. –

+0

jmettraux, Ce n'est probablement pas sendgrid. Je peux obtenir sendgrid pour envoyer des emails sur le même site que sur elmah. En outre, j'ai essayé avec un compte smtp chez un autre hôte appelé hostmysite.com. Il y a un serveur de liste auquel j'accède et Elmah n'en enverra pas à Azure. Elmah envoie de ma mise en scène avec sendgrid ou hostmysite.com. Nous avons besoin d'ingénieurs Azure pour intervenir. –

Répondre

0

J'ai eu un problème similaire et a obtenu l'aide de support technique Microsoft. Apparemment, le passage de 64 bits à 32 bits dans le tableau de bord Azure le corrige. 64 bits et c'est "accès refusé", 32 bits et les emails passent. OK, apparemment, l'équipe Azure a résolu un problème pour ce problème 64 bits. 64 bits et 32 ​​bits fonctionnent pour moi. Ils disent qu'ils ont déployé le correctif hier (2013/06/20).

0

L'implémentation actuelle d'ELMAH (v1.2 SP2) peut uniquement envoyer des e-mails via SMTP, qui n'est pas pris en charge de manière native dans Azure. (Probablement parce que cela se transformerait en un énorme moteur de SPAM). Étant donné qu'ELMAH est inclus dans le projet en tant que module HTTP, j'ai dû télécharger le & pour modifier le source pour gérer les services Web Exchange Online afin que les courriels fonctionnent dans notre service Azure Cloud. Le code est très propre, donc vous devriez seulement devoir modifier ErrorMailModule.cs. J'ai ajouté dans les paramètres d'entrée web.config appropriés, puis créé une nouvelle méthode d'envoi de l'insérer comme si (en préservant la compatibilité ascendante):

ReportError(Error error) 
{ 
    ... 

OnMailing(args); 
if (UseExchangeWebServices) //pulled from web.config 
{ 
    SendExchangeMail(mail); 
} 
else 
{ 
    SendMail(mail); 
} 

.... 
} 

//Sample web.config 
<elmah> 
<errorMail to="[email protected]" 
      subject="Sample - Elmah Exception" 
      async="true" 
      exchangeUserName="[email protected]" 
      exchangePassword="supersecretpassword" 
      autoDiscoverUrl="[email protected]" 
      useExchangeWebServices="true"/> 
</elmah> 

Je venez de télécharger le code à notre serveur Nuget d'entreprise pour la consommation facile. J'ai déjà utilisé l'API de SendGrid, vous devriez être capable de faire quelque chose de similaire.

Edit: Je suis allé de l'avant et a ajouté le paquet NuGet ici: http://www.nuget.org/packages/elmah.ews/

Questions connexes