Elmah webconfig error 500 в проекте Window2008r2 MVC2 - PullRequest
1 голос
/ 29 ноября 2010

Только что обнаружил, что мне не нужны httpHandler и httpHandlers в system.web, и он все еще работает

Я попытался интегрировать Elmah в мой проект MVC2, и он отлично работает на моем локальном компьютере, нокогда я загружаю его в Интернет, который является window2008-r2.Там я получаю «500 - Внутренняя ошибка сервера».

Когда я удаляю httpHandler и httpHandlers из веб-конфигурации, ошибка исчезает, но elmah не работает.

Пожалуйста, помогите, как выЯ запускаю его на 2008RC?

Вот что в моем файле webconfig:

  <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"/>
  <section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah"/>
</sectionGroup>

... ...

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


<customErrors mode="RemoteOnly" defaultRedirect="/content/error.htm" />

... ...

<modules runAllManagedModulesForAllRequests="true">
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
</modules>


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

...

<security allowRemoteAccess="0" />

<!--
  quickest log method
  -->
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/Content/ErrorLog" />

...

Ответы [ 2 ]

0 голосов
/ 21 января 2011

требуется ли httpHandlers в system.web и определяется ли вы на IIS6 .... Лучше сохранить обе части, как показано в примере odyth , чтобы он работал нормально для IIS 6 и 7

0 голосов
/ 20 января 2011

Я собираюсь догадаться, что вы используете .net 4.0 на своей коробке 2008 года, и этот модуль не совместим с .net 4

Я загрузил исходные файлы и скомпилировал их как .net 4не было проблем.В настоящее время я использую Elmah на сервере 2008 с использованием .net 4.0, и все работает отлично.

В качестве справки приведу выдержку из моего файла web.config

<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>

<elmah>
  <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ConnectionString" />
  <security allowRemoteAccess="0" />    
</elmah>
<location path="elmah.axd">
<system.web>
    <authorization>
      <deny users="?" />
    </authorization>
    <httpRuntime requestLengthDiskThreshold="256" maxRequestLength="2097151" />
  </system.web>
</location>

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

<httpModules>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</httpModules>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
</modules>
<handlers>
  <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
 </handlers>
 </system.webServer>
...