半动态地更改web.config中的customErrors

时间:2010-05-24 19:10:04

标签: asp.net iis web-config custom-errors

基本思想是我们有一个模拟生产的测试环境,因此customErrors =“RemoteOnly”。我们刚刚构建了一个针对Test环境运行的测试工具,并检测到中断。我们希望能够撤回详细错误。但我们不想将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?

1 个答案:

答案 0 :(得分:1)

如果你有customErrors =“On”或“remoteOnly”,错误细节不会消失吗?我的意思是您仍然可以使用自定义错误页面访问它并将其记录到其他来源。

为什么不在生产日志中将自定义错误页面放在线束可以访问它的某个位置,例如消息队列或应用程序事件日志?当线束遇到休息时,它必须足够聪明才能在正确的位置进行查找以获得完整的错误信息。

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