如何测试Javascript WinRT / Metro客户端/服务器应用程序?

时间:2012-12-30 05:34:15

标签: javascript windows windows-8 windows-runtime client-server

我正在开发a client/server Javascript Windows 8 Metro application并使用Microsoft's StreamSocket sample来实现服务器和客户端之间的通信。现在我已经完成了实现,我不知道如何在我的计算机上测试它,因为似乎不可能多次运行同一个应用程序。你知道这个问题的解决方法吗?

一种解决方法(实际上不是解决方案)是将应用程序多次复制到不同的项目中,并将其中一个作为服务器启动,然后启动其他项目作为客户端。即使使用这种方法,我也无法将客户端连接到服务器实例。当服务器实例未启动时,在客户端尝试连接到服务器后,将返回此错误消息:

  

“无法建立连接,因为目标计算机主动拒绝它。”

但是,当服务器实例启动并侦听连接时,在客户端尝试连接到服务器之后,它会等待一段时间,然后返回此错误消息:

  

“连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败。”

我知道不支持使用localhost将客户端连接到服务器,因为我连接到网络,所以我使用计算机的IP地址作为客户端的地址。 我还在服务器和客户端中添加了这些功能:

  • 互联网(客户)
  • 互联网(客户端和服务器)
  • 专用网络(客户端和服务器)

1 个答案:

答案 0 :(得分:4)

使用localhost可以绕过允许与CheckNetIsolation.exe建立连接的Windows应用商店应用程序的限制,以便进行调试。您可以通过调用以下命令添加一个免除环回隔离的应用程序:

CheckNetIsolation.exe LoopbackExempt –a –n=myapp_ecet6zh215f62e

最后一部分(myapp_ecet6zh215f62e)是您应用的Package family name,可在Packaging文件的Package.appxmanifest标签上找到。

您还可以列出已经免除的所有应用:

CheckNetIsolation.exe LoopbackExempt –s

有关CheckNetIsolation.exe的更多详细信息,请here

但是,从Visual Studio运行的所有应用程序都应该已经免除。也许有一个防火墙阻止你的两个应用程序实例连接。尝试暂时禁用它,只是为了确定。

无法在一台计算机上运行多个应用程序实例,至少不是我所知道的。在您的情况下,我可能会在我的计算机上安装虚拟机并从那里运行第二个实例。无论如何,这将是对真实环境的更好模拟,您甚至可以避免必须处理环回隔离。