не передаются аргументы в PEAR::SOAP

Sync

Новичок
не передаются аргументы в PEAR::SOAP

Из кода думаю понятно, что делается:

<?
require_once 'SOAP/Client.php';

$wsdl = 'http://localhost/CRMWebService.asmx?wsdl';

$wsdl = new SOAP_WSDL($wsdl);

eval($wsdl->generateProxyCode());

$proxy_object = $wsdl->getProxy();

$proxy_object->auth('user', 'password');
?>

Параметры, которые передали ($login = 'user', $password='password'), просто игнорируются.

Вот как сгенерил generateProxyCode() метод auth():

function &auth($login, $password)
{
$auth =& new SOAP_Value('{http://tempuri.org/}auth', false, $v = array('login' => $login, 'password' => $password));
return $this->call('auth',
$v = array('auth' => $auth),
array('namespace' => 'http://tempuri.org/',
'soapaction' => 'http://tempuri.org/auth',
'style' => 'document',
'use' => 'literal'));
}

Сервис крутится на ASP.NET.

В чем может быть проблема?

-~{}~ 08.07.05 19:17:

Вот реализация метода на C#
[WebMethod]
public string auth (string login, string password)
{

if (login=="user" && password == "password")
{
return "yes";
}
else {
return "no";
}
}

И возвращается всегда "no" :(

-~{}~ 11.07.05 19:16:

Посмотрел как PEAR генерит тело запроса.
Там добавляется namespace ns4, типа так:

<SOAP-ENV:Body>
<ns4:TestMethod>
<a xsi:type="xsd:int">8</a></ns4:TestMethod>
</SOAP-ENV:Body>

и этот сервис .NET отказывается такое принимать :(
Вместо этого он требует такое:

<soap:Body>
<TestMethod xmlns="http://tempuri.org/" >
<a>8</a>
</TestMethod>
</soap:Body>

Пробовал в исходниках PEAR::Client руками ему прописывать - все работает нормально.

Так вопрос, кто виноват .NET или PEAR ?

Есть ли возможность управлять этими неймспейсами в PEAR или где можно почитать про это?
 
Сверху