web-dev-qa-db-ja.com

Elmah MVCを使用して本番サーバーの/ elmahにアクセスできませんか?

Elmah.mvc nugetパッケージをインストールし、メールの送信とSQLデータベースへのプラグインをセットアップするのではなく、デフォルトの構成を維持しました。

ローカルコンピューターでVisual Studio Hostを使用しているときに、アプリを開いて/ elmahにアクセスし、エラーのレポートを確認できます。ただし、本番環境で/ elmahにアクセスしようとすると、2つのエラーが発生します。最初に403 access is denied サーバーエラー。次に、(elmahからの)私のメールで、次のようになります。

System.Web.HttpException: Server cannot set status after HTTP headers have been sent.

誰もがここで何が起こっているのか、そしてどのように修正するのか知っていますか?ありがとう。

以下の答えで示唆されている限り、私は以下を試しました:

<system.webServer>

<handlers>
  <add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</handlers>

そして<system.web>

<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>

パスを両方に設定してみましたelmah.axdおよび単に~/elmah。すべて同じエラーが発生し、ローカルで機能しますが、本番環境では機能しません。

編集:サーバーにリモートでアクセスし、ブラウザーでアクセスする場合にも機能します(localhostではなく実際のサイトアドレスを使用)。では、どのような許可を得ていませんか?サーバーレベルにあるようです。

55
SventoryMang

Elmahでリモートアクセスを有効にするには、web.configファイルの<elmah>セクションに次の構成設定を追加します。この値のデフォルト設定はfalseで、これはlocalhostのみを許可するため、Visual Studio内からローカルマシンで機能するのはなぜですか。

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

私はいつもこれを自分で忘れているようで、数分かけて頭をかきます;)

118
Paige Cook

HttpHandlerがweb.configファイルのwebServerセクションで定義されていることを確認してください。

<system.webServer>
  <httpHandlers>
    <add name="elmah" verb="GET" path="elmah.axd"  type="Elmah.ErrorLogPageFactory, Elmah"/>
  </httpHandlers>
</system.webServer>
1
scottm