【发布时间】:2012-03-14 08:49:42
【问题描述】:
从msdn 站点,我知道 customErrors 元素提供有关 ASP.NET 应用程序的自定义错误消息的信息。 mode 属性的 RemoteOnly 值指定自定义错误仅显示给 远程客户端,并且 ASP.NET 错误显示给 本地主机。
在c#端,如何实现,一些逻辑只为远程客户端调用,而另一些为本地主机调用(检查此条件的c#代码将从Global.asax.cs Application_Error级别调用)?
【问题讨论】:
从msdn 站点,我知道 customErrors 元素提供有关 ASP.NET 应用程序的自定义错误消息的信息。 mode 属性的 RemoteOnly 值指定自定义错误仅显示给 远程客户端,并且 ASP.NET 错误显示给 本地主机。
在c#端,如何实现,一些逻辑只为远程客户端调用,而另一些为本地主机调用(检查此条件的c#代码将从Global.asax.cs Application_Error级别调用)?
【问题讨论】:
我找到了解决办法。
我不知道HttpRequest 类型具有IsLocal 属性这一事实。我已经使用 dotPeek 检查了 System.Web 程序集的 System.Web.Configuration.CustomErrorsSection 实现。我发现在 RemoteOnly 模式下使用 IsLocal 属性。它的值表示请求是否来自本地计算机。
protected void Application_Error(object sender, EventArgs e)
{
if(Context.Request.IsLocal)
{
//do stuff
}
}
【讨论】:
您可以为特定文件夹使用单独的 Web.Config,并覆盖此特定文件夹配置文件的主 Web 配置值
【讨论】: