我正在构建一个需要6种不同服务的分布式应用程序。我将不得不使用Visual Studio 2008在我的XP笔记本电脑上演示应用程序。
是否可以同时在localhost上运行多个服务,全部使用net.pipe?
例如:
net.pipe://localhost/DirectoryService
net.pipe://localhost/MathService
如果没有,是否有其他方法可以在不使用IIS / webdev服务器的情况下托管这些WCF服务?的net.tcp?还有别的吗?
答案 0 :(得分:8)
是的,提供绑定地址是唯一的。您展示的两个示例可以与net.pipe绑定一起使用。
请记住,net.pipe绑定仅适用于本地计算机。如果您希望从远程计算机访问您的服务,则需要使用不同的绑定,例如net.tcp。也就是说,如果您的服务在localhost上运行,net.pipe是推荐的绑定,因为它比其他绑定更有效。
答案 1 :(得分:8)
您应该了解net.pipe地址的另一件事是您提供 URN ,而不是URL。 net.pipe是一个内存实现,你指定的“地址”可以是任何东西。
net.pipe://IHateCats
net.pipe://NamedPipes/Are/Fast
无论其他因素如何,这些都会奏效。它只是该命名管道的唯一标识符。网络堆栈不涉及这种形式的通信。
答案 2 :(得分:2)
您可以使用HTTP作为没有IIS的服务端点,查看ServiceHost类。这就是我用于本地WCF测试的方法,而且效果非常好。