4

我正在构建一个需要 6 种不同服务的分布式应用程序。我必须使用 Visual Studio 2008 在我的 XP 笔记本电脑上演示该应用程序。

是否可以同时在 localhost 上运行多个服务,全部使用 net.pipe?

例如:

net.pipe://localhost/DirectoryService
net.pipe://localhost/MathService

如果没有,是否有任何其他方法可以在不使用 IIS/webdev 服务器的情况下托管这些 WCF 服务?网络.tcp? 还有什么?

4

3 回答 3

8

是的,只要绑定地址是唯一的。您展示的两个示例将与 net.pipe 绑定一起正常工作。

请记住,net.pipe 绑定仅适用于本地计算机。如果您希望您的服务可以从远程机器访问,您需要使用不同的绑定,例如 net.tcp。也就是说,如果您的服务在 localhost 上运行,则推荐使用 net.pipe 绑定,因为它比其他绑定更有效。

于 2009-04-15T01:14:29.117 回答
8

关于 net.pipe 地址,您应该知道的另一件事是您提供的是URN,而不是 URL。net.pipe 是一个内存实现,您指定的“地址”可以是任何东西。

net.pipe://IHateCats
net.pipe://NamedPipes/Are/Fast

无论任何其他因素如何,这些都将起作用。它只是该命名管道的唯一标识符。网络堆栈不涉及这种形式的通信。

于 2009-04-15T15:34:43.243 回答
2

您可以在没有 IIS 的情况下使用 HTTP 作为服务端点,看看ServiceHost类。这就是我用于本地 WCF 测试的方法,并且效果很好。

于 2009-04-14T23:58:05.087 回答