我们有一个需求(我相信是构建/部署后验证测试(BVT)的一部分)来测试远程服务器A是否可以“连接”到远程服务器B。
我想在本地开发人员VM上使用C#开发一个控制台应用程序。然后,这应该“连接”到远程服务器A。然后,它需要检查远程服务器A是否可以“连接”到远程服务器B(通过从本地到远程服务器A的原始连接)。
目前,我已经生成了一个简单的“助手”exe,它连接到远程服务器B(使用先前已知的指向远程服务器B和SqlConnection类的连接字符串)。作为构建过程的一部分(在最后),exe被复制到远程服务器A。然后,构建服务器上的PSEXEC.exe远程启动远程服务器A上的"helper“exe并检查%errorcode%。然后确定BVT应该通过还是失败(然后从远程服务器A删除"helper“exe )。
仅供参考,所有运行Windows Server2008 R2 x64企业版的计算机都位于同一本地域中。我是所有3台计算机的管理员。
远程服务器A是web服务器,远程服务器B是SQL数据库服务器。本地机器将/确实代表构建服务器。这个测试很简单:“web服务器能否连接到数据库服务器”。困难之处在于如何远程实现。
我知道我可以只做系统/集成/端到端测试(使用编码的UI等),我们正在做这件事,但也想考虑这个需求/测试(因为服务器和网络配置等是与外部方的“共同责任”,我们不能保证在我们不知情的情况下发生/将会发生任何变化(除了通过Service Desk流程进行反应))
我采用的进程似乎是OTT,但似乎确实有效(如果我关闭端口等)。有没有一种使用TCPCLient类或其他东西的完全.NET的方式呢?如果做and服务,并在and服务器上托管它们,然后从构建服务器调用它们,会怎么样呢?其他的想法和事情值得考虑,而不仅仅是欢迎。
发布于 2013-01-14 21:04:38
为什么不在web服务器上创建一个测试页,对SQL服务器执行无害的操作。
例如,该页面可能执行一个简单的查询(select top(1) name from person)。
我可以在你的问题中看到标记的web服务。如果您想验证与托管web服务的服务器之间的连接,或者验证托管web服务的服务器与底层后端服务器(例如数据库)之间的连接,最好的确认方法(在我看来)是调用一个执行简单读取的无害服务。检索WSDL是不够的。
发布于 2013-01-14 21:38:57
您可以使用管理对象来查询和控制域中的计算机和服务器。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 server,以查看可用的信息类型。
正如你所看到的,这是一个很大的主题。
https://stackoverflow.com/questions/14318166
复制相似问题