【问题标题】:Can I deploy debug files in c# Windows service [duplicate]我可以在 C# Windows 服务中部署调试文件吗?
【发布时间】:2022-01-21 15:38:56
【问题描述】:

我正在用 C# 开发 Windows 服务。当我对服务进行测试时,我会在 bin 文件夹中获得 debug 文件夹。

我知道如果我想进行部署,我应该创建一个release 文件夹。

但我的问题是:如果我从调试文件夹中获取文件并将它们部署到我们的服务器中,会导致任何问题或安全漏洞吗?

【问题讨论】:

  • 好吧,它们会运行得更慢(调试版本未优化)。你为什么要这样做?大多数时候,开发人员使用调试版本(因为,调试)。然后,您将发布版本部署到测试环境以验证所有内容。这样一来,您就会对将发布到生产环境的构建感到满意。我从事 .NET 工作已有 20 年了,我很高兴地说您的发布版本将与您的调试版本运行相同(除非 做了一些事情来打破等价性)。
  • 有问题吗?也许性能略低。安全漏洞?不太可能
  • 不,这不会导致,但最好将它们部署为“发布”。它将从行李箱中清除大量垃圾。发布、调试模式可用是有原因的。在发布配置中,您可能有不同的设置,然后在 dev/degub 模式下

标签: c# debugging windows-services release bin


【解决方案1】:

不,C# 应用程序不会有任何问题。如果您的程序还包含本机(例如 C++)组件,则会出现问题,因为您需要在目标系统上存在特殊库,而这些库通常不存在。但是对于 .NET 应用程序,没有调试运行时之类的东西,因此程序无论是编译为调试还是发布,都将运行和工作。唯一的区别是调试版本会稍微慢一些,可能会更大。

在调试模式下运行程序也不会添加(额外的)安全漏洞。实际上恰恰相反,因为 release 删除了您可能已经放置在代码中的断言,因此如果发生意外情况,您的程序将无法中止。如果它是一个调试版本,反汇编你的程序会更容易,但除非你有一些不相关的安全漏洞,否则任何人都无法查看程序代码,无论如何“安全槽默默无闻”不起作用。

因此,在服务器上使用调试版本进行测试是非常好的,这甚至可以让您很好地执行一些远程调试,以防程序的行为与您的计算机上的不同。不过最后还是换release吧。

【讨论】:

    猜你喜欢
    • 2012-02-26
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    相关资源
    最近更新 更多