我找不到这个问题的副本,但我真的希望我不是第一个问。
我有一个位于局域网内的WCF服务。对于我的局域网上的.NET客户端,NetTcpBinding是适当的绑定。但是,我的一个客户端是PHP Web应用程序。有没有办法做到这一点?
更新:我很清楚我可以有多个端点。我想知道与php应用程序中的wshttp相比,我是否可以享受nettcp的速度,减少的网络流量和缺乏延迟。
它碰巧是在Windows上运行的PHP应用程序,因此COM互操作或.NET Interop可以工作。我想知道是否有“原生”解决方案,例如pecl模块或梨库。
答案 0 :(得分:2)
NetTcpBinding仅用于“WCF到WCF通信”。 (MSDN)
此绑定使用专有协议进行通信,并且它不具有互操作性,因为它针对WCF到WCF进行了优化。
您的WCF服务可以有不同的端点。为什么不使用可以从php应用程序轻松使用的绑定公开另一个端点? (如BasicHttpBinding或WebHttpBinding)
答案 1 :(得分:0)
您可以向现有服务端点添加另一个绑定。那么为什么不在nettcpbinding之外添加basichttp或wshttp绑定。它只是配置文件中的几行,不需要任何代码更改。
答案 2 :(得分:0)
以下选项可能是黑客攻击。我把它们包括在那里找到这个问题的其他人。
This允许您使用可以从自定义PHP模块调用的非托管导出创建.NET程序集,
Phalanger将PHP解释为.NET运行时。它还使您可以完全访问.NET API。我只是玩弄了一点。但是,它肯定会读取web.config文件。如果它不尊重web.config的WCF服务方面,我会使用最初由this PowerShell script开发的Christian Glessner作为在代码中完全配置WCF服务客户端存根的参考。