2010-05-24 45 views
1

基本思想是我们有一个模拟Production的测试环境,因此customErrors =“RemoteOnly”。我们只是建立了一个针对测试环境运行的测试工具并检测出中断。我们希望它能够撤回详细的错误。但是我们不想打开customErrors =“On”,因为它不会模仿Production。半动态更改web.config中的customErrors

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

  • 我们无法在运行时关闭customErrors,因为当您调用configuration.Save()时 - 它将web.config写入磁盘,现在每个请求都关闭。
  • 我们不能将文件符号链接到一个新的顶层目录,因为它是自己的web.config,因为我们在windows上,而windows上的subversion没有做符号链接。
  • 我们不能用URL的映射,使一个空文件夹DIR2有自己的web.config,并在dir1的文件似乎是在DIR2 - 在web.config不适
  • 我们不能将所有aspx文件复制到dir2与它自己的web.config,因为没有任何链接将是一致的,这是一个可怕的哈克解决方案。
  • 基于主机名,我们不能改变在web.config中的customErrors(例如添加其他DNS条目到测试服务器),因为这是不可能的/支持
  • 我们不能做任何虚拟目录有心计,使其工作。

如果我不是,有没有办法完成我想要做的事情?在某些情况下(dns名称甚至querystring值)在整个站点打开customErrors?

回答

1

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

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

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

+0

这就是我们现在放在一起的黑客,它使我们有60%的时间,50%的时间。但是我们使用nUnitASP作为线束,并且它很好地解析了死亡的黄页,从而为您提供错误细节。我希望能够重新获得这一点。 – 2010-05-24 19:32:31