gpt4 book ai didi

c# - 部署应用程序调试版本的含义?

转载 作者:太空狗 更新时间:2023-10-29 20:29:09 27 4
gpt4 key购买 nike

我想知道决定部署一个在调试中构建的应用程序(带有调试符号表)的优缺点,而不是符号被剥离的 Release模式。还有其他排列,例如为 Debug 打开优化和为 Release 打开调试符号。

我认为可能关注的领域是(您可能知道其他领域):

  • 安全
  • 表现
  • 稳定性

但我不是专家,所以我不确定部署调试应用程序对这些领域的所有影响。

它可能无关紧要,但对于相关人员而言,此应用程序是一个 C# .Net 框架 3.5(管理 TB 数据的业务应用程序)。这是一个(付费)客户的应用程序。

选择这样做有什么明显的优势或劣势吗?

最佳答案

安全性:如果不进行混淆,调试和发布托管代码(如 C#)已经很容易受到攻击。通过混淆来保护您的代码,否则它很容易被复制、窃取、加密等任何安全措施都被破解(您在本例中提到了客户的 TB 数据)。我已经回答了obfuscation question here .此外,制作一个 key 文件并签署您的程序集。

性能:调试速度明显较慢,永远不应发布调试版本。如果使用 AJAX 会使每个页面请求变得更重,因为调试版本更大。将调试标志设置为 false 你的应用程序配置文件,我在这个 other question 中包含了一些类似的提醒.

稳定性:调试使用更多内存,如果服务器内存不足,则可能不太稳定。拥有调试 dll 的一个优点是,如果应用程序失败,您的 pdb 文件将已经就位。最佳做法是将调试版本保存在您构建的每个发布版本的安全位置。如果客户要求您调试,请备份他的文件夹并替换为您相应的调试程序集。

我开发了一个归档产品,它也归档了 TB 的数据,我不建议部署调试版本并确保它被混淆,并且文件加密方法使用 Dotfuscator 加密。

关于c# - 部署应用程序调试版本的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3714213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com