I am getting occasional errors when invoking calls on the
low level API of the SOAP library (3.0 Toolkit).
The HRESULT code is always 0x800A1518.
The _com_error Description is "Connector:Http error while
parsing server's response. HRESULT=0x800A1526 -
Connector:Unspecified HTTP error. HRESULT=0x800A1518".
The _com_error ErrorMessage is "Unknown error 0x800A1518".
The specific method that I am noticing the error on is
with EndMessage( ) of an HttpConnector30 object. The
second or third attempt at repeating just the EndMessage
method will frequently be successful (waiting a second or
so between calls). When the error does occur, the
response is immediate, so I don't believe it is a timeout
problem.
We are wrapping all of the calls in our own framework, but
the steps are roughly as follows:
----------start-------------
ISoapConnectorPtr Connector;
HRESULT answer = Connector.CreateInstance(__uuidof
(HttpConnector30));
Connector->Property["SoapAction"] = "";
_variant_t vConnectionTimeout((long)20000);
Connector->Property["ConnectTimeout"] = vConnectionTimeout;
_variant_t vTimeout((long)40000);
Connector->Property["Timeout"] = vTimeout;
Connector->BeginMessage();
Connector->Property["EndPointURL"] = URL.c_str();
Connector->Connect();
ISoapSerializerPtr Serializer;
Serializer.CreateInstance(__uuidof(SoapSerializer3 0));
Serializer->Reset();
IUnknown* pIS = Connector->InputStream
Serializer->Init(_variant_t( (IUnknown*) pIS ) );
Serializer->StartEnvelope("","NONE","");
Serializer->SoapAttribute("SOAP-
ENV:encodingStyle","" ,"http://schemas.xmlsoap.org/soap/enc
oding/", "");
Serializer->SoapAttribute("xmlns:SOAP-
ENC","" ,"http://schemas.xmlsoap.org/soap/encoding/", "");
Serializer->SoapAttribute
("xmlns:xsi","" ,"http://www.w3.org/1999/XMLSchema-
instance", "");
Serializer->SoapAttribute
("xmlns:xsd","" ,"http://www.w3.org/1999/XMLSchema", "");
Serializer->SoapAttribute
("xmlns:ns2","" ,"http://schemas.xmlsoap.org/soap/encoding/
", "");
Serializer->StartBody("NONE");
Serializer->StartElement(aMethodName.c_str(),
aServiceName.c_str(), "NONE", aNameSpace.c_str());
Serializer->WriteString(aValue.c_str());
Serializer->EndElement();
Serializer->EndBody();
Serializer->EndEnvelope();
Connector->EndMessage();
-----------stop--------------
The calls do not require authentication, a proxy is not
being used, and the connection is not secure. Any ideas
on what is happening would helpful. Thank you.