如何以errorMode为条件使existingResponse成为条件?
例如,如果errorMode =“DetailedLocalOnly”,那么我希望外部消息被我的自定义定义“替换”,即友好错误页面,但我希望本地消息“passThrough”。因此,对于500错误,我在本地看到YSOD,而不是IIS 500错误页面。在外部我会看到我的友好错误页面。
这可能吗?
我当前的配置:
<httpErrors existingResponse="Replace" errorMode="DetailedLocalOnly">
<remove statusCode="500" />
<error statusCode="500" path="/myCustomErrorPage" responseMode="ExecuteURL" />
</httpErrors>
答案 0 :(得分: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。当然,请确保您已为网络服务器配置了电子邮件。 E.g。
<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>