Aa NETTCP Bağlama olan PHP bir WCF hizmeti ve bir BasicHttpBinding bağlanma

3 Cevap ûnet

Ben bir WCF hizmeti var. Bu birden fazla müşteri ve üç uç noktaları vardır. Bitiş noktası bağlamaları, wsHttp ve BasicHttp NETTCP vardır. Ben şöyle php'd yerleşik SoapClient sınıfı aracılığıyla bağlanmak için çalışırsanız:

$service = new SoapClient
("http://service.companyname.local:6666/Service/?wsdl",
 array(
         "location" => "http://service.companyname.local:6666/Service/Basic",

	"trace" => true,
	'soap_version' => SOAP_1_1
     )
);

Ben şu olsun:

PHP Fatal error:  SOAP-ERROR: Parsing WSDL: PHP-SOAP doesn't support transport 'http://schemas.microsoft.com/soap/tcp' in c:\www\client.php on line 666

Şu anda benim geçici elle wsdl kaydetmek ve NETTCP bağlayıcı kaldırmaktır. Benim otomatik olarak oluşturulan WSDL kullanmanızı sağlayacak bir çözüm var mı? Ben bir web.config Wsdl bağlama gizleyebilir miyim? Ben farklı bağlamaları farklı wsdls oluşturabilir. Ben iki hizmet ana dağıtmak istemiyorum.

3 Cevap

I filed a feature request with PHP. Bu uygulamaya ben doğru cevap olarak bu işareti olacak. Ama hala daha iyi çözümlerden açığım.

UPDATE: I submitted a patch to implement this. I am awaiting its approval.
UPDATE: Patch committed to svn. Awaiting the next release of PHP.
UPDATE: Patch is now part of PHP 5.3.3 and 5.2.14.

Eğer iki hizmet ana dağıtmak istemiyorum derken kendini barındıran bir Windows hizmeti tek bir ServiceHost olduğunu varsayalım. Ben (örneğin, yeni config her servis girişi için ServiceHost var) istediğiniz gibi dahili gibi birçok hizmet impls barındırabilir bir genel hizmet ana bina bu sorunu çözmüş. Ben ihtiyaç olarak bu şekilde, ben esnek bir tek Windows hizmeti gibi birçok hizmet impls barındırabilir. Bu temiz WSDL tutmak için diğerlerinden BasicHttp bağlı hizmet ayırmak için izin vererek sorunu çözmek olacaktır. Bu yüzen (here 's biri) bazı açık kaynak örnekleri vardır.

Ben bunu yapmak için düşünebildiğim tek diğer yolu (here bakınız) WsdlExporter inşa kendi özel meta veri bitiş noktası göstermek olacaktır

İyi şanslar!

Şu anda araştırma yapıyorum başka bir seçenek denilen PHP için bir üçüncü taraf sabun istemci WSF-PHP.