1

サイトを Windows azure に公開すると、ELMAH は電子メールを送信せず、以下のエラーをスローします。ヘルプやアイデアをいただければ幸いです。ありがとう!

ノート:

Azure の外部で IIS/.NET ホスティングを行う hostmysite.com で smtp 経由で電子メールを送信するように elmah を適切にセットアップしました。自宅には、うまく機能するステージングサーバーもあります。また、ポート 25、50、587 を試しました。また、有料のリスト サーバーと SendGrid に送信しようとしました。いずれの場合も、ステージング サーバーと開発サーバーでは機能しますが、Azure では機能しません。

ELMAH は、データベース (Azure の MS SQL および IIS) でエラーをキャプチャしています。

ここに私の構成設定があります:

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="errors@domain.com" to="ErrorReport@mydomain.com" subject="[Site][ErrorReport-ELMAH]" async="false" smtpPort="587" smtpServer="stmp.server.com" useSsl="false" userName="user1" password="password1" noYsod="false" />**
  </elmah>
4

2 に答える 2

0

同様の問題があり、Microsoft サポートから助けを得ました。どうやら、Azure ダッシュボードで 64 ビットから 32 ビットに切り替えると修正されるようです。64 ビットで「アクセスが拒否されました」、32 ビットでメールが通過します。

どうやら、Azure チームがこの 64 ビットの問題を修正したようです。私には64ビットと32ビットが機能します。彼らは、昨日 (2013/06/20) 修正を展開したと言っています。

于 2013-06-20T16:19:16.333 に答える