1

基本思想是我们有一个模拟生产的测试环境,因此 customErrors="RemoteOnly"。我们刚刚构建了一个针对测试环境运行并检测中断的测试工具。我们希望它能够撤回详细的错误。但是我们不想打开 customErrors="On" 因为那样它就不会模仿生产。

我环顾四周,想了很多,我想出的一切都是不可能的。我对这些观点有误吗?

  • 我们无法在运行时打开 customErrors,因为当您调用 configuration.Save() 时 - 它会将 web.config 写入磁盘,现在每个请求都关闭。
  • 我们不能用它自己的 web.config 将文件符号链接到一个新的顶级目录,因为我们在 windows 上,并且 windows 上的 subversion 不做符号链接。
  • 我们不能使用 URL-Mapping 使用自己的 web.config 创建一个空文件夹 dir2 并使 dir1 中的文件看起来在 dir2 中 - web.config 不适用
  • 我们不能用它自己的 web.config 将所有的 aspx 文件复制到 dir2 中,因为没有一个链接是一致的,这是一个可怕的 hacky 解决方案。
  • 我们无法根据主机名更改 web.config 中的 customErrors(例如,向测试服务器添加另一个 dns 条目),因为这是不可能的/不支持的
  • 我们不能做任何虚拟目录的恶作剧来使它工作。

如果我不是,有没有办法完成我想做的事情?在某些情况下(dns 名称甚至查询字符串值)打开 customErrors 站点范围?

4

1 回答 1

1

如果您有 customErrors="On" 或 "remoteOnly" 错误详细信息不会消失,对吗?我的意思是您仍然可以使用您的自定义错误页面访问它并将其记录到另一个来源。

为什么不在生产日志中将您的自定义错误页面包含在您的工具可以访问的地方,例如消息队列或应用程序事件日志?当安全带遇到中断时,它必须足够聪明,以便在正确的位置查找完整的错误信息。

无论如何都要考虑另一件事。

于 2010-05-24T19:18:38.577 回答