NetTcpBinding üzerinden php bir WCF hizmetine bağlama

3 Cevap ûnet

Bu soru için bir yinelenen bulamıyor, ama dürüstçe ben sormak için ilk değilim umuyoruz.

Ben LAN içinde oturan bir WCF hizmeti var. Için. Benim lan NET müşteriler, NetTcpBinding uygun bağlayıcıdır. Ancak, benim müşterilerimden biri bir PHP web uygulaması. Bunu yapmak için herhangi bir yolu var mı?

Update: Ben birden çok uç noktaları olabilir farkındayım. Ben hız, azaltılmış ağ trafiğini ve bir php app wshttp göre NETTCP latansının eksikliği keyfini eğer bilmek istiyorum.

O yüzden COM birlikte veya. NET birlikte çalışabilirlik olurdu pencereler üzerinde çalışan bir PHP uygulaması olur. Bir "yerli" bir çözüm, böyle aa pecl modül veya armut kütüphane var olup olmadığını merak ediyorum.

3 Cevap

NetTcpBinding is intended "for WCF-to-WCF communication" only. (MSDN)

Bu bağlayıcı iletişim kurmak için özel bir protokol kullanır ve WCF-to-WCF için optimize edilmiş bu yana çalışabilir olması anlamına gelmez.

WCF hizmeti için farklı uç noktalar olabilir. Neden php uygulama kolayca tüketilen olabileceği bir bağlayıcı ile başka bir bitiş noktası göstermek değil mi? (BasicHttpBinding veya WebHttpBinding gibi)

Varolan hizmet bitiş noktası başka bir bağlantı ekleyebilirsiniz. Peki neden sadece NetTcpBinding ek olarak bağlayıcı bir BasicHttp veya wshttp eklemeyin. Bu config dosyasında sadece birkaç satır ve herhangi bir kod değişikliği gerektirmez.

Aşağıdaki seçenekler mümkündür kesmek vardır. Ben bu soruyu bulmak başkaları için onları orada bulunmaktadır.

  • This Eğer bir özel PHP modülü diyebiliriz yönetilmeyen ihracat bir. NET derleme yapmanızı sağlar,

  • Phalanger. NET çalışma zamanı içine PHP yorumlar. Aynı zamanda size. NET API tam erişim sağlar. Ben sadece bu biraz eğlendi ettik. Ancak, kesinlikle size web.config dosyasını okur. Bu web.config WCF hizmetleri yönü saygı yoksa, ben kod tamamen bir WCF hizmeti istemci saplama yapılandırmak için bir referans olarak, this PowerShell script, başlangıçta Christian Glessner tarafından geliştirilen kullanmak istiyorsunuz .