Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF客户端使用PHP web服务_C#_Php_Wcf_Web Services_Httpwebrequest - Fatal编程技术网

C# WCF客户端使用PHP web服务

C# WCF客户端使用PHP web服务,c#,php,wcf,web-services,httpwebrequest,C#,Php,Wcf,Web Services,Httpwebrequest,我在使用WCF的PHP web服务时遇到了一个问题。首先,我尝试通过“添加服务引用”创建代理类,但这不起作用: 完整错误消息: There was an error downloading 'http://xxx.yyy.zzz.pl/Swdsoapserver/query?wsdl/_vti_bin/ListData.svc/$metadata'. The request failed with the error message: -- <?xml version="1.0" enc

我在使用WCF的PHP web服务时遇到了一个问题。首先,我尝试通过“添加服务引用”创建代理类,但这不起作用:

完整错误消息:

There was an error downloading 'http://xxx.yyy.zzz.pl/Swdsoapserver/query?wsdl/_vti_bin/ListData.svc/$metadata'.
The request failed with the error message:
--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>Sender</faultcode><faultstring>Invalid XML</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

--.
Metadata contains a reference that cannot be resolved: 'http://xxx.yyy.zzz.pl/Swdsoapserver/query?wsdl'.
The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xxx.yyy.zzz.pl/Swdsoapserver/query" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="SwdQuerySoap"
    targetNamespace="http://xxx.yyy.zzz.pl/Swdsoapserver/query">
    <wsdl:types>
        <xsd:schema 
此base64_编码('xyzxyz')是连接所需的哈希

有没有关于如何在C#NET中使用此服务的建议

编辑:来自IE的屏幕:

编辑:将文件保存在磁盘上并添加到visual studio(还有我的2个其他wcf服务)

首先,您应该在您喜爱的导航器中浏览WSDL。将文件保存到本地的computer上

步骤2,您必须对此文件进行服务引用。它通常会为项目中的PHP web服务创建一个客户端(WCF)


最后一步,您只需在WCF中实例化一个客户端。

首先,您应该在您喜爱的导航器中浏览WSDL。将文件保存到本地的computer上

步骤2,您必须对此文件进行服务引用。它通常会为项目中的PHP web服务创建一个客户端(WCF)


最后一步,您只需在WCF中实例化一个客户端。

您可以在导航器中浏览WSDL吗?我编辑了我的问题,并添加了一些在IE导航器中看到的WSDL屏幕截图。您可以尝试在本地计算机上保存该文件并引用该文件。完成。现在下一步是什么?如果是这样,你应该有一个客户端来调用你的web服务。但是要小心做过服务引用(WCF)而不是Web引用。如果是,您的web服务有一个客户端。您可以在导航器中浏览WSDL吗?我编辑了我的问题,并添加了一些来自WSDL的屏幕截图,我在IE导航器中看到了这些截图。您可以尝试在本地计算机上保存该文件并引用该文件。完成。现在下一步是什么?如果是这样,你应该有一个客户端来调用你的web服务。但是要小心做过服务引用(WCF)而不是Web引用。如果是这样,您的web服务有一个客户端。我连接到该服务并发送请求,但当我现在收到响应时,我有“您不能将System.Int32类型的对象分配给System.Int32[]类型的对象”Stacktrace:System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader阅读器、MessageVersion版本、XmlSerializer序列化器、MessagePartDescription returnPart、MessagePartDescriptionCollectio…WSDL似乎有点奇怪。reference.cs文件中始终有一个minOccurs为1,一个maxOccurs为unbounded(在服务引用目录下,如果显示所有文件,则可以看到此文件),您应该有每个字段的描述,并且每个字段都应该声明为一个数组。是否有方法更正/更新PHP文件的WSDL文件?如果没有,您可以手动更改每个字段的类型。不,没有方法更新PHP WSDL文件,但我用另一种方法进行了更新。我将代理类返回类型更改为object,并且给我一个XmlNode[],现在,我正在编写我自己的xml->myClass解析器,以从该web服务获取我需要的信息。Thx寻求帮助。我连接到该服务并发送请求,但当我现在得到响应时,我会说“你不能将System.Int32类型的对象分配给System.Int32[]类型的对象。”Stacktrace:System.ServiceModel.Dispatcher.XmlSerializeRopeOptionFormatter.DeserializeBody(XmlDictionaryReader阅读器、MessageVersion版本、XmlSerializer序列化器、MessagePartDescription returnPart、MessagePartDescriptionCollectio…WSDL似乎有点奇怪。reference.cs文件中始终有一个minOccurs为1,一个maxOccurs为unbounded(在服务引用目录下,如果显示所有文件,则可以看到此文件),您应该有每个字段的描述,并且每个字段都应该声明为一个数组。是否有方法更正/更新PHP文件的WSDL文件?如果没有,您可以手动更改每个字段的类型。不,没有方法更新PHP WSDL文件,但我用另一种方法进行了更新。我将代理类返回类型更改为object,并且给我一个XmlNode[],现在,我正在编写我自己的xml->myClass解析器,以从该web服务获取我需要的信息。Thx寻求帮助。
$Http = new Zend_Controller_Request_Http();
       $client = new SoapClient("http://".$Http->getServer('HTTP_HOST')."/Swdsoapserver/queryko?wsdl", array        ('trace'         => true));
       $object->sy = "12345678";
       $client->getParcel($object, base64_encode('xyzxyz'));