【发布时间】:2011-10-24 16:30:56
【问题描述】:
我正在尝试为 WCF Web 服务制作 PHP 客户端。但是当我调用服务的功能时会出现一些错误。
App.config
<system.serviceModel>
<services>
<service behaviorConfiguration="MyServiceBehavior"
name="GSC.Wcf.Services.CartService">
<endpoint address=""
binding="basicHttpBinding"
contract="GSC.Wcf.Services.ICartService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/CartService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
功能:
> public int Addiere(int a, int b)
{
return a + b;
}
PHP 请求:
> $client = new SoapClient("http://localhost:8731/CartService?wsdl");
>
> $result = $client->Addiere(2,4);
对于这些函数,我得到一个这样的错误:
“未捕获的 SoapFault 异常:[a:DeserializationFailed] Formatierer 格式化程序在 消息反序列化:无法反序列化请求正文 该消息的目的是用于操作“Addiere”。末端元素 “正文” aus 命名空间“http://schemas.xmlsoap.org/soap/envelope/”是 预期的。找到的是 Namespace"" 的元素 "param1"。
德语:
致命错误:未捕获的 SoapFault 异常:[a:DeserializationFailed] Der Formatierer hat beim Deserialisieren der Nachricht eine Ausnahme 上一篇:Fehler beim Deserialisieren des Textkörpers der Anforderungsnachricht für Vorgang "Addiere"。 Es wurde das Endelement “正文”aus 命名空间“http://schemas.xmlsoap.org/soap/envelope/” 厄瓦特。 Gefunden wurde "元素 "param1" aus 命名空间 """。泽勒 2, 位置 148. 在 C:\xampp\htdocs\TestClient\Client.php:6 堆栈跟踪: 0 C:\xampp\htdocs\TestClient\Client.php(6): SoapClient->__call('Addiere', Array) #1 C:\xampp\htdocs\TestClient\Client.php(6): SoapClient->Addiere(2, 4) #2 {main} 在第 6 行的 C:\xampp\htdocs\TestClient\Client.php 中抛出
但是这个功能是有效的:
C#
> public string Message()
{
return "WORD";
}
PHP
> $result = $client->Message();
var_dump($result);
结果
object(stdClass)#2 (1) { ["MessageResult"]=> string(4) "WORD" } WORD
唯一的问题是返回类型不是字符串。
任何人都可以猜出什么是错的,或者我发布了更多的东西,比如 wsdl ? 或者有没有人知道我可以查找如何获得正确的配置以与我的服务进行通信的好资源?
【问题讨论】:
标签: php wcf webservice-client