gpt4 book ai didi

.net - 在 PHP 中连接到具有 NetTCP 绑定(bind)和 BasicHttpBinding 的 WCF 服务

转载 作者:搜寻专家 更新时间:2023-10-31 21:46:47 24 4
gpt4 key购买 nike

我有一个 WCF 服务。它有多个客户端和三个端点。端点绑定(bind)是 nettcp、wsHttp 和 basicHttp。如果我尝试通过 php 内置的 SoapClient 类连接到它,如下所示:

$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
)
);

我得到以下信息:

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

现在我的解决方法是手动保存 wsdl 并删除 nettcp 绑定(bind)。是否有允许我使用自动生成的 wsdl 的解决方法?我可以在 web.config 中隐藏来自 wsdl 的绑定(bind)吗?我可以在不同的绑定(bind)上生成不同的 wsdls 吗?我不想部署两个服务主机。

最佳答案

当您说您不想部署两个服务主机时,我假设您是在 Windows 服务中自托管单个 ServiceHost。我通过构建一个通用服务主机解决了这个问题,该主机可以在内部托管任意数量的服务实现(例如,它是配置中每个服务条目的新服务主机)。这样,我就可以根据需要在单个 Windows 服务中灵活地托管尽可能多的服务实现。这将通过允许您将 basicHttp 绑定(bind)服务与其他服务分开以保持 WSDL 清洁来解决您的问题。有一些关于此的开源示例(here 的一个)。

我能想到的唯一其他方法是公开您自己从 WsdlExporter 构建的自定义元数据端点(请参阅 here)

祝你好运!

关于.net - 在 PHP 中连接到具有 NetTCP 绑定(bind)和 BasicHttpBinding 的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1933213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com