我可以在 c# Windows 服务中部署调试文件吗
Can I deploy debug files in c# Windows service
我正在用 C# 开发 Windows 服务。当我对服务进行测试时,我在 bin
文件夹中得到了 debug
文件夹。
我知道如果我想进行部署,我应该创建一个 release
文件夹。
但我的问题是:如果我从调试文件夹中取出文件并将它们部署到我们的服务器中,这会导致任何问题或安全漏洞吗?
不,C# 应用程序不会有任何问题。如果您的程序还包含本机(例如 C++)组件,则会出现 be 问题,因为您需要目标系统上存在通常不存在的特殊库。但是对于 .NET 应用程序,没有调试 运行 时间这样的东西,因此程序将 运行 并且无论是编译为调试还是发布都一样工作。唯一的区别是调试版本会稍微慢一点,而且可能更大。
运行在调试模式下运行程序也不会增加(额外的)安全漏洞。实际上恰恰相反,因为 release 删除了您可能已放置在代码中的断言,因此如果发生意外情况,您的程序将无法中止。如果它是一个调试版本,反汇编你的程序会更容易,但除非你有一些不相关的安全漏洞,否则程序代码不可供任何人查看,并且“安全槽默默无闻”无论如何都不起作用。
因此,在服务器上使用调试版本进行测试非常好,这甚至可以让您很好地执行一些远程调试,以防程序的行为与您的计算机上的行为不同。不过最后还是换release吧
我正在用 C# 开发 Windows 服务。当我对服务进行测试时,我在 bin
文件夹中得到了 debug
文件夹。
我知道如果我想进行部署,我应该创建一个 release
文件夹。
但我的问题是:如果我从调试文件夹中取出文件并将它们部署到我们的服务器中,这会导致任何问题或安全漏洞吗?
不,C# 应用程序不会有任何问题。如果您的程序还包含本机(例如 C++)组件,则会出现 be 问题,因为您需要目标系统上存在通常不存在的特殊库。但是对于 .NET 应用程序,没有调试 运行 时间这样的东西,因此程序将 运行 并且无论是编译为调试还是发布都一样工作。唯一的区别是调试版本会稍微慢一点,而且可能更大。
运行在调试模式下运行程序也不会增加(额外的)安全漏洞。实际上恰恰相反,因为 release 删除了您可能已放置在代码中的断言,因此如果发生意外情况,您的程序将无法中止。如果它是一个调试版本,反汇编你的程序会更容易,但除非你有一些不相关的安全漏洞,否则程序代码不可供任何人查看,并且“安全槽默默无闻”无论如何都不起作用。
因此,在服务器上使用调试版本进行测试非常好,这甚至可以让您很好地执行一些远程调试,以防程序的行为与您的计算机上的行为不同。不过最后还是换release吧