我们有一个要求(我相信作为构建/部署后验证测试(BVT)的一部分)来测试远程服务器 A 可以“连接”到远程服务器 B。
我想在我的本地开发人员 VM 上使用 C# 开发一个控制台应用程序。然后这应该“连接”到远程服务器 A。然后需要检查远程服务器 A 是否可以“连接”到远程服务器 B(通过从 LOCAL 到远程服务器 A 的原始连接)。
目前,我已经生成了一个简单的“帮助程序”exe,它连接到远程服务器 B(使用先前已知的连接字符串指向远程服务器 B 和 SqlConnection 类)。作为构建过程的一部分(最后),该 exe 被复制到远程服务器 A。构建服务器上的 PSEXEC.exe 然后远程启动远程服务器 A 上的“帮助程序”exe 并检查 %errorcode%。然后,这将确定 BVT 是否应该通过或失败(然后从远程服务器 A 中删除“helper”exe)。
仅供参考,所有机器都运行 Windows Server 2008 R2 x64 Enterprise 并且位于同一个本地域中。我是所有 3 台机器的管理员。
远程服务器 A 是 Web 服务器,远程服务器 B 是 SQL 数据库服务器。本地机器将/确实代表构建服务器。这个测试很简单,就是说“网络服务器能否连接到数据库服务器”。困难在于如何远程做到这一点。
我知道我可以进行系统/集成/端到端测试(使用编码 UI 等),我们正在这样做,但也想考虑这个要求/测试(因为服务器和网络配置等是“共同的责任” “与外部方合作,我们不能保证在我们不知情的情况下任何事情已经/将会发生变化(除了通过服务台流程做出反应))
我采用的过程似乎是 OTT,但似乎确实有效(如果我关闭端口等)。是否有使用 TCPCLient 类或其他东西的完全 .NET 方式来做到这一点?做网络服务并将它们托管在网络服务器上并从构建服务器调用它们怎么样?其他需要考虑的想法和事情非常受欢迎。