0

我们有一个要求(我相信作为构建/部署后验证测试(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 方式来做到这一点?做网络服务并将它们托管在网络服务器上并从构建服务器调用它们怎么样?其他需要考虑的想法和事情非常受欢迎。

4

2 回答 2

1

为什么不在对 SQL 服务器执行无害操作的 Web 服务器上创建一个测试页面。

例如,该页面可能会执行一个简单的查询(从人员中选择顶部(1)名)。

我可以看到您的问题中标记的网络服务。如果您想验证与托管 Web 服务的服务器或托管 Web 服务的服务器与底层后端服务器(例如数据库)之间的连接,最好的方法(在我看来)是调用一个无害的服务做一个简单的阅读。检索 WSDL 是不够的。

于 2013-01-14T13:04:38.383 回答
0

您可以使用管理对象来查询和控制域中的计算机和服务器。 http://msdn.microsoft.com/en-us/library/system.management.aspx

SQL Server 包括一些特定于管理 SQL Server 的额外对象。 http://msdn.microsoft.com/en-us/library/ms220749.aspx

如果您有 Linqpad:

ManagedComputer mc = new ManagedComputer( "yourserver" );
mc.Dump();

否则创建一个控制台应用程序并创建一个 ManagedComputer 实例并使用调试器查询计算机的 SQL 服务器,以查看可用信息的种类。

如您所见,这是一个很大的主题...

于 2013-01-14T13:38:56.597 回答