<编译调试=“true”> 在预编译的 asp.net 网站中 - 这重要吗?
我正在 Visual Studio 2008 上使用 Web 部署项目部署一个预编译和全页面合并的网站。请注意,所有程序集和项目都已在发布模式下编译。
我的所有页面都是在发布模式下预编译的。 所以它们不会被重新编译,它们只会被运行时加载。 在这种情况下,当不需要页面编译时,在 system.web 中设置
会有什么不同吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查看下面的优秀链接:
基本上:
上述情况均不可取。 您会在上面的链接中发现更多缺点。
Check out the excellent links below:
Basically:
None of the above is desirable. You will find more disadvantages in the above links.
根据文档:
但是,刚刚通过 System.Web 快速反映,我可以看到调试标志由以下内容(直接或间接)使用:
因此,如果您的站点经过预编译,您将不会受到性能影响。 然而,由于 HttpApplication 将响应 DEBUG http 动词,因此您将面临安全问题。
简而言之,设置 debug=false,即使您的站点是预编译的。
编辑: debug=true 将导致缓存性能(参见 Mehmet Aras 的答案)命中并且没有执行超时,但它不会降低已编译页面的执行速度。
According to the documentation:
However, having just quickly reflected through System.Web, I can see the debug flag is used (directly or indirectly) by the following:
As a result, if your site is precompiled you will not receive a performance hit. However, as the HttpApplication will respond to the DEBUG http verb, you open yourself up to security problems.
In short, set debug=false, even if your site is precompiled.
Edit: debug=true will result in a performance (see Mehmet Aras's answer) hit for caching and no execution timeout, but it will not reduce execution speed for compiled pages.
来自博客文章 ASP.Net – 再也不会了害怕使用 debug=true 发布您的网站:
本文继续建议设置生产服务器 machine.config 以确保强制零售部署模式,这本质上意味着调试总是假的。
From the blog post ASP.Net – Never again fear publishing your website with debug=true:
The article goes on to recommend setting the production server machine.config to ensure retail deployment mode is forced which essentially means debug is always false.