我有一个使用 TCP/IP (netTcpBinding) 托管的 WCF 服务:
var baseWcfAddress = getWcfBaseUri();
host = new ServiceHost(wcfSingleton, baseWcfAddress);
var throttlingBehavior = new System.ServiceModel.Description.ServiceThrottlingBehavior();
throttlingBehavior.MaxConcurrentCalls = Int32.MaxValue;
throttlingBehavior.MaxConcurrentInstances = Int32.MaxValue;
throttlingBehavior.MaxConcurrentSessions = Int32.MaxValue;
host.Description.Behaviors.Add(throttlingBehavior);
host.Open();
我想用 Objective C 或 C++ 编写 Mac 客户端。是否有任何现有类可以促进与我的 WCF 服务的连接?如果没有,实现它的步骤和选项是什么?
最佳答案
每个以 net
开头的绑定(bind)都被认为是不可互操作的。即使没有 WCF 的纯 .NET 客户端也无法通过重新实现整个二进制协议(protocol)和编码付出巨大的努力来与服务通信。您可能应该从:
您的 Mac 选项是使用 Mono它应该支持 netTcpBinding。
Mac 上 Objective-C/C++ 的真正选择是创建可互操作的 WCF 服务,通过 HTTP 公开数据。如果您不是该服务的所有者,您可以创建路由 WCF 服务,它将是 bridge在可互操作的 HTTP 和 netTCP 之间。
编辑:
还有一件事 - 如果服务使用 netTcpBinding
和默认配置,它会受到 Windows 安全保护。我希望它能成为 Mac 上的又一亮点。
关于c++ - Mac(或 C++)连接到二进制 WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6459619/