我正在开发a client/server Javascript Windows 8 Metro application并使用Microsoft's StreamSocket sample来实现服务器和客户端之间的通信。现在我已经完成了实现,我不知道如何在我的计算机上测试它,因为似乎不可能多次运行同一个应用程序。你知道这个问题的解决方法吗?
一种解决方法(实际上不是解决方案)是将应用程序多次复制到不同的项目中,并将其中一个作为服务器启动,然后启动其他项目作为客户端。即使使用这种方法,我也无法将客户端连接到服务器实例。当服务器实例未启动时,在客户端尝试连接到服务器后,将返回此错误消息:
“无法建立连接,因为目标计算机主动拒绝它。”
但是,当服务器实例启动并侦听连接时,在客户端尝试连接到服务器之后,它会等待一段时间,然后返回此错误消息:
“连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败。”
我知道不支持使用localhost
将客户端连接到服务器,因为我连接到网络,所以我使用计算机的IP地址作为客户端的地址。
我还在服务器和客户端中添加了这些功能:
答案 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运行的所有应用程序都应该已经免除。也许有一个防火墙阻止你的两个应用程序实例连接。尝试暂时禁用它,只是为了确定。
无法在一台计算机上运行多个应用程序实例,至少不是我所知道的。在您的情况下,我可能会在我的计算机上安装虚拟机并从那里运行第二个实例。无论如何,这将是对真实环境的更好模拟,您甚至可以避免必须处理环回隔离。