【问题标题】:Turn off customErrors for web service only仅针对 Web 服务关闭 customErrors
【发布时间】:2010-11-01 10:20:03
【问题描述】:

我的 ASP.NET 2.0 Web 应用程序包含一个 Web 服务,该服务会引发各种异常以及自定义错误消息(例如“您无权访问此项目”等)。这些显示在屏幕上,在 ASP.NET AJAX 回调处理程序中。

应用程序的其余部分由一些自定义错误页面覆盖,在 web.config 中以通常的方式指定。

<customErrors mode="RemoteOnly" defaultRedirect="Error.html">
      <error statusCode="404" redirect="NotFound.html" />
      <error statusCode="403" redirect="NoAccess.html" />
</customErrors>

我的问题是,如果我在 web.config 中启用了 customErrors,我会丢失从 Web 服务返回的错误消息 - 而是将它们替换为

“处理请求时出错”——这对我或用户都不是很有用。

有没有办法只为 Web 服务关闭自定义错误?

【问题讨论】:

    标签: asp.net web-services exception-handling


    【解决方案1】:

    是的,custom errors element

    可以在应用程序文件层次结构中的任何级别定义。

    因此,只要您的 WebService 位于文件夹中,您就可以为该文件夹添加 web.config 并将其关闭。

    【讨论】:

      【解决方案2】:

      将您的网络服务放入单独的目录中,并将附加的 web.config 文件放入该目录中。每个目录都可以拥有自己的 web.config,其中包含该目录(以及该目录中的目录)的设置。

      【讨论】:

      • 没问题!唯一的原因是,您现在可能必须在更改 Web 应用程序的设置(例如,当您决定更改连接字符串等)时更新两个 web.config 文件。
      • @smok1:您只需要在嵌套的 .config 文件中包含 CustomErrors 元素 - 无需添加您不想更改的任何内容。
      • @Zhaph - Ben Duguid - 是的,你是对的。将 all 包含在 webconfig 中的唯一原因是您确实注意到只有一个根目录。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 2010-10-22
      • 2011-03-25
      相关资源
      最近更新 更多