Я столкнулся с точно такой же проблемой, когда пытался написать клиент для службы национальных железных дорог SOAP с помощью Perl.
Проблема была вызвана тем, что модуль Perl, который я использую 'SOAP :: Lite', вставляет '#' в заголовок SOAPAction ...
SOAPAction: "http://thalesgroup.com/RTTI/2008-02-20/ldb/#GetDepartureBoard"
Это неправильно интерпретируется серверами .NET. Я узнал об этом из примера 3-19 в программирования O'Reilly с помощью SOAP . Решение было дано ниже в разделе 3-20, а именно вам необходимо явно указать формат заголовка с помощью метода on_action.
print SOAP::Lite
-> uri('urn:Example1')
-> on_action(sub{sprintf '%s/%s', @_ })
-> proxy('http://localhost:8080/helloworld/example1.asmx')
-> sayHello($name)
-> result . "\n\n";
Я предполагаю, что soapclient.com использует SOAP :: Lite за кулисами и поэтому сталкивается с той же проблемой при общении с National Rail.
Решение состоит в том, чтобы написать свой собственный клиент, чтобы вы могли контролировать формат заголовка SOAPAction ... но вы, вероятно, уже сделали это.
Richard