4

最新の ELMAH.MVC NuGet パッケージがインストールされている MVC WebAPI サイトがあります。Visual Studioの下で、アクセスできます

http://localhost:1234/elmah

私ができるはずのように、エラーログを取得します。

それを Azure にデプロイすると、エラーがスローされます。幸いなことに、Elmah は App_Data の XmlError ログにエラーを記録しており、これを見つけました。

<error errorId="92ad3ee1-3fd5-449a-8cb4-0474aa771aab" 
application="/LM/W3SVC/417796901/ROOT" 
host="RD00155D430783" type="System.Web.HttpException"
message="Server cannot set status after HTTP headers have been sent."
source="System.Web" 
detail="System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.&#xD;&#xA;

そして、スタック トレースの多くの行が続きますが、どれも私のコードの近くにはありません。

どうしたの?Elmah.MVC nuget パッケージを追加し、Web.Config に次の変更を加えました。

  <elmah>
  <security allowRemoteAccess="yes"/>
      <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
  </elmah>
  <location path="elmah.axd">
    <system.web>
    <allow roles="*" />
    </system.web>
   </location>

私のコントローラーの近くには来ていないので、Httpステータスヘッダーがいつ設定または送信されるかを制御することはできません.

助けてくれてありがとう。

4

2 に答える 2

0

イタネックスは正しいです!空のテキスト ファイル (つまり、placeholder.txt) を App_Data フォルダーに配置し、「コンテンツ」および「常にコピー」としてマークします。これにより、App_Data フォルダーが確実に作成されます。また、サイモンが指摘するように、正しいパス (構成に基づく) は /elmah.axd です。

于 2013-07-21T16:36:31.297 に答える