【发布时间】:2014-02-19 17:25:29
【问题描述】:
我正在开发一个 ASP.NET 网站,我想部署 pdb 文件,因为当抛出意外异常时,我想用行号记录它们,以便我可以跟踪解决问题。
但我担心安全和性能。
如果我使用堆栈跟踪信息登录到网络服务器上的非公共文件并且不向用户显示它,那么在网络服务器上拥有 pdb 文件是否存在任何安全风险?
就性能而言,我知道当有 pdb 文件时处理异常会更昂贵,但目标是不出现任何异常,并且在它们发生的极少数情况下,以获得良好的跟踪数据,所以我们可以解决问题。
但我不清楚的一件事是:如果抛出并捕获了异常,我还要支付 pdb 罚款吗?我特别想到Response.Redirect 时抛出的ThreadAbortException。这是一个遗留应用程序,其中有很多作为正常程序流程的一部分,所以我只是捕获并忽略这些异常,但是 pdb 文件的存在是否会使这变得更加昂贵?还是 .NET 会忽略 pdb 文件,除非您要求堆栈跟踪(对于这个特殊的异常,我没有)?
除此之外,只要没有例外,除了我确实想详细了解的情况,将 pdb 文件部署到 Web 服务器是否会影响性能?
【问题讨论】: