如果您在发布模式下构建和发布ASP.NET Web 应用程序,那么开发环境中以下web.config行中的debug="true"
< / em> 有什么不同吗?
<compilation defaultLanguage="vb" debug="true" />
显然,您将始终在生产服务器上拥有debug="false"
- 这不是问题。
我的问题是,当我构建用于发布到生产系统的DLL时,是否应该设置debug="false"
。
目前我还没有,因为PITA需要记住在发展true
和发布false
之间进行更改。我希望答案是&#34;它没有任何区别&#34;。
(我使用Visual Studio 2010和.NET 4.0 - 由于遗留原因,该解决方案包含VB.NET和C#项目。)
答案 0 :(得分:1)
请阅读the following article有关运行debug="false"
摘录:
[保持debug =“true”]会导致许多非最佳事情发生,包括:
1)ASP.NET页面的编译需要更长时间(因为某些批处理 优化被禁用)
2)代码执行速度较慢(因为一些额外的调试路径是 启用)
3)在运行时在应用程序中使用了更多的内存
4)从WebResources.axd处理程序下载的脚本和图像是 没有缓存
在freefaller的评论之后,我想补充一点,配置值在发布时并不重要,仅在运行时。因此,您可以使用debug =“true”在发布模式下编译程序集,并使用debug =“false”进行部署,而不会出现任何问题。该参数仅作用于运行时配置
答案 1 :(得分:0)
我认为当程序员重建项目时,VS不会在web.config中获取编译标签的debug属性值。
当我使用Configuratoin = release重建项目时,我将debug属性的值保留为“debug”。然后我下载实用程序.NET Assembly Information以检查我的构建的输出。我发现那些dll都是“释放”!!
答案 2 :(得分:0)
程序集的编译模型与ASP.NET应用程序的调试模式之间存在很大差异。
处于释放模式的程序集允许编译器进行优化,以使代码更快,并且通常消耗更少的资源。
相反,<compilation debug="true" />
会使应用程序变慢并消耗更多内存,通常来说,上述答案中报告了所有缺点。