2

我已经通过 NuGet 管理器控制台安装了 Elmah(具有默认设置的标准包)。

为了进行测试和更好地理解,我尝试重新配置它,使其仅在“调试模式”下运行(在成功测试后,我希望有两种不同的调试和发布配置,例如在发布发送电子邮件中,在调试中不等。 )。

因此,我已将大部分(工作)配置从 Web.config 移至Web.Debug.config

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <configSections>
    <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>
  </configSections>
  <system.web>
    <httpModules>
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
    </httpModules>
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
  </system.webServer>
  <elmah>
    <security allowRemoteAccess="false" />
    <errorMail from="XXXX" to="XXXX"
                async="true"  smtpPort="0" />
  </elmah>
  <location path="elmah.axd" inheritInChildApplications="false">
    <system.web>
      <httpHandlers>
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
      </httpHandlers>
    </system.web>
    <system.webServer>
      <handlers>
        <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
      </handlers>
    </system.webServer>
  </location>
</configuration>

现在,当我尝试打开elmah.axd页面时,我得到“找不到资源”。错误。我错过了什么?

4

1 回答 1

2

在本地,您应该使用 web.config 文件。

调试或发布模式实际上与使用哪个配置文件没有任何关系。只有在部署时才会发生转换:

网络配置

这是开发人员应该在本地使用的配置文件。理想情况下,您应该将其标准化。例如,您可以将 localhost 用于数据库字符串,等等。您应该努力使其在开发机器上工作而无需更改。

web.debug.config

这是在您将应用程序发布到开发登台环境时应用的转换。这将对目标环境所需的 web.config 进行更改。

web.release.config

这是当您将应用程序发布到“生产”环境时应用的转换。显然,根据您的应用程序/团队,您必须小心使用密码。

参考链接:http: //blogs.msdn.com/b/webdev/archive/2010/10/26/asp-net-web-projects-web-debug-config-amp-web-release-config.aspx

于 2013-05-15T08:00:49.773 回答