0

我可以使用 netTcpBinding 在同一台机器(本地主机)中而不是在本地主机之外访问(请注意,我问的是可访问的意思是可浏览的)来托管 WCF 服务......甚至不是内部网。

4

4 回答 4

3

我应该这样认为,只要它运行的端口不可从外部访问(例如被防火墙阻止)。

于 2012-08-03T10:14:30.447 回答
2

这也可以在托管级别(在 IIS 中)完成:

  • 打开 IIS 管理器
  • 选择 WCF 服务应用程序文件夹
  • 打开“IP地址和域限制”
    • 如果不存在,则必须将“ip 和域限制”角色添加到服务器
  • 在“IP 地址和域限制”中输入 127.0.0.1 的允许条目
  • 然后在“编辑功能设置”下将“未指定访问”设置为“拒绝”

无论服务如何设置,IIS 都不允许访问 127.0.0.1 之外

编辑:此功能在 IIS 5.1 (Windows XP) 上不可用。您将需要防火墙,或查看 IIS Express。

于 2012-08-03T10:22:45.887 回答
1

您可以使用 IIS(net.tcp 仅 7.0 或更高版本)或作为 Windows 服务托管 WCF 服务。

对于 IIS,您应该创建站点或 Web 应用程序并为 net.tcp 协议添加与端口的绑定。

在 localhost 和远程计算机上托管没有区别。

一般来说,本地连接最好使用 NetNamedPipeBinding

于 2012-08-03T17:39:07.377 回答
0

正如 Henk Holterman 所建议的那样

当我们在 loaalhost 中托管服务并且服务只需要进程内通信(例如与同一台机器中的另一个 WCF 进行通信)或者说存在于同一台机器中的 .Net 客户端时,NetNamedPipeBinding 是最好的方法......

同样,netNamedPipeBinding 使通信更快,因为

1) 序列化以二进制格式进行 2) 与 netTcpBinding 不同,我们通过端口进行通信,netNamedPipebinding 使用命名管道在进程之间进行通信。

谢谢。苏拉杰

于 2012-08-08T03:13:01.733 回答