ASP.NET网站DLL:调试与发布版本

时间:2009-08-09 17:28:33

标签: asp.net dll

将我的ASP.NET Web应用程序.dll文件上传到我的网站的/ bin /目录时,使用调试版本是否有任何缺点,而不是重新编译发布版本。

例如,在网站上本地工作时,构建配置设置为Debug。当事情看起来不错时,我会继续为网站/ webapp上传最新的.dll。我应该在那时将构建配置切换到Release,然后编译,然后将该版本的.dll上传到服务器吗?

我希望这个问题不重复。我在这个主题中读了很多其他类似单词的问题,但没有发现与我的问题直接相关的问题。

谢谢,

亚当

5 个答案:

答案 0 :(得分:5)

使用调试程序集运行在性能上要稍微重一点,因为它们会占用更多内存,但通常不会如此。您应该只在部署版本构建时才真正“发布”。如果您仍然预期会出现某种程度的意外行为,我会考虑使用调试程序集,这样您就可以从未处理的异常中获得更多有用的信息。真正的性能“问题”是你的web.config中有debug="true"

答案 1 :(得分:2)

很多都取决于您的个人需求。一般而言,由于性能原因,人们不屑于将调试版本投入生产。发出的调试代码显然没有优化,并且包含可能减慢代码执行速度的调试符号。

另一方面,我的工作地点是策略是将调试版本放入生产中,因为当代码抛出异常时,它可以很容易地看到行号等。我不是说我同意这个立场,但我看到有人这样做。

斯科特·汉塞尔曼(Scott Hanselman)有一篇关于做混合版本的调试和发布的好文章,可以让你在两个世界中都做到最好here

答案 2 :(得分:2)

如果您的网站数量较少,您将永远不会以任何可衡量的方式看到Debug程序集的性能损失。如果您的音量很高,请查看其他记录/检测代码的方法。

在大量网站上,您需要执行大量压力和负载测试,以便在应用程序投入生产之前尽力破解应用程序。我会用Debug程序集进行测试的第一次传递(因为你可能会破坏东西,它会让你更容易看到它在哪里)。然后,重复发布程序集以确保它们的行为与Debug程序相同。

答案 3 :(得分:1)

答案 4 :(得分:1)

很少有应用程序会发现版本和调试版本之间的性能存在显着差异。如果您正在运行一个中小型应用程序,并且您认为可能存在任何未捕获的错误,请使用调试版本。