【问题标题】:httpErrors conditional on errorMode?httpErrors 以errorMode为条件?
【发布时间】:2013-05-07 03:04:14
【问题描述】:

如何使existingResponse 以errorMode 为条件?

例如,如果 errorMode="DetailedLocalOnly" 那么我希望外部消息被我的自定义定义(即友好错误页面)“替换”,但我希望本地消息被“传递”。因此,对于 500 错误,我在本地看到 YSOD,而不是 IIS 500 错误页面。在外部,我会看到我的友好错误页面。

这可能吗?

我目前的配置:

<httpErrors existingResponse="Replace" errorMode="DetailedLocalOnly">
    <remove statusCode="500" />
    <error statusCode="500" path="/myCustomErrorPage" responseMode="ExecuteURL" />
</httpErrors>

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    很遗憾,这是不可能的。您可以使用事件日志查看详细信息,也可以通过电子邮件向自己发送错误详细信息:

    <healthMonitoring enabled="true" heartbeatInterval="0">
        <eventMappings>
            <clear />
            <add name="All Errors" type="System.Web.Management.WebBaseErrorEvent, System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647" />
        </eventMappings>
        <providers>
            <clear />
            <add name="EmailProvider" type="System.Web.Management.SimpleMailWebEventProvider" to="youemail@example.com" from="webserver@example.com" buffer="true" bufferMode="Logging" />
            <add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider" />
        </providers>
        <rules>
            <clear />
            <add name="EmailRule" eventName="All Errors" provider="EmailProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" />
            <add name="EventLogRule" eventName="All Errors" provider="EventLogProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" />
        </rules>
    </healthMonitoring>
    

    如果您只想接收通知,例如每小时或每天,请调整 minInterval。当然,请确保您已为您的网络服务器配置了电子邮件。例如

    <system.net>
        <mailSettings>
            <smtp deliveryMethod="SpecifiedPickupDirectory">
                <specifiedPickupDirectory pickupDirectoryLocation="C:\MailPickUpFolders\ExampleDomain" />
                <network host="localhost" port="25" />
            </smtp>
            <!--<smtp deliveryMethod="Network">
                <network host="yoursever" port="25" />
            </smtp>-->
        </mailSettings>
    </system.net>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 2016-07-28
      • 2015-10-20
      • 2014-07-09
      相关资源
      最近更新 更多