是否有正当理由让某人将 Visual Studio 安装在其唯一目的是为传入请求提供服务的 Web 服务器上?说真的,有人可能会这样做有什么特别的原因吗?
2 回答
一种可能的用途是连接到 Web 服务器并调试某种错误或内存泄漏,这些错误或内存泄漏已被证明无法在开发机器上找到。根据设置,远程调试可能是更好的选择。对我们来说,作为 ISV,它不是,因为我们经常通过 LiveMeeting 和其他非常低效的方式连接到客户系统来诊断生产中的问题。有几次我不得不在客户系统上调试正在运行的进程,我下载并使用了WinDbg。
调试生产系统的更好选择是使用跟踪、日志记录和内存转储。有人可以使用 Visual Studio 附加到 w3wp.exe 进程并保存内存转储文件。但是,如果他们只需要一个内存转储,还有其他更有效的收集方法:任务管理器、进程资源管理器等。
也有人可能将它用作查看 XML、配置或 html 文件的非常昂贵的编辑器,但这不是合法用途。
我真诚地希望没有人真正在这台机器上编写代码。如果您有访问权限,您可以快速搜索用户文件夹中的项目文件。
那么有人可能会在生产 Web 服务器上安装 Visual Studio 吗?是的,它可能很有用。但这并不意味着这是一个好主意。
我对此持不同的观点。是的,正如其他人所说,您可以使用其他工具在 Web 服务器上或远程调试生产支持问题,但在生产 Web 服务器上安装 Visual Studio 是有正当理由的。由于我所工作的业务,我也被置于开发人员处于不利地位的情况下,这是必要的。例如,我现在的雇主从未设置过 QA Web 服务器。所以我坚持进行本地开发并在生产中部署测试站点进行测试。3 年过去了,我仍然没有分配资源来配置新的 Web 服务器。由于公司的政策,基于我的经验的远程访问调试并不是解决生产特定问题的最佳方法,并且在某些情况下是有问题的,并且不是每个人都可以使用的选项。问题的一些示例是防火墙问题、IP/域网络问题和安全问题,因为所有公共 Web 服务器都在 DMZ 上。我的远程调试经验为零,因为我雇主的网络团队不允许我打开端口并使其成为可能,因为服务器位于 DMZ 上。此外,根据您的 Visual Studio 版本,远程调试有问题并且从未工作过(尚未尝试使用新版本,因为我无法在工作中进行)。只要安装该程序以供授权人员使用,我认为将其仅用于紧急生产支持问题没有不利的一面。我个人有无数经验,其中错误特定于生产 Web 服务器,无法在本地或 QA 或开发服务器上重现,而最快和最简单的解决方案是在生产 Web 服务器上调试问题。该修复是在开发和 QA 测试中进行的,然后应用于生产工作,解决工具并不总是报告特定问题。当时最好的解决方案是直接在生产中调试它。我相信会有人说它存在安全风险,但如果应用程序是安全的,我认为在紧急情况下拥有最好的调试工具并没有什么不好的地方。在生产中使用 VS 也有一些影响,例如 IIS 重置,这就是为什么它应该仅限于调试问题。我想补充一点,我只在紧急情况下推荐这个。这也不适用于所有企业,因为有些企业不允许开发人员访问 Web 服务器。在我的例子中,我一直负责 Web 服务器和应用程序本身。此选项的使用范围应仅限于使用其他方法无法解决问题的紧急情况,并且永远不应直接在生产中对问题进行编程修复。最后,有时它可能是必要的,也许您可能需要在几个小时后安装它,然后在问题解决后将其删除。