1
votes

I have a web form that is sending data to a third party service using this library from http://www.xml-rpc.net.

Recently the form has started to throw exceptions. I have tried enabling trace in the web.config to see what data is going back and forth, but this seems to fix the problem, or at least stop the exception being thrown.

Any ideas what could be happening, or how I can diagnose this without apparently fixing the problem?

The trace code:

    <system.diagnostics>
    <trace autoflush="true" />
    <sources>
        <source name="System.Net">
            <listeners>
                <add name="WebPageTraceListener"
                    type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            </listeners>
        </source>
    </sources>
    <switches>
        <add name="System.Net" value="Verbose" />
    </switches>
</system.diagnostics>

The exception message:

System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine [SocketException (0x2745): An established connection was aborted by the software in your host machine] System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) +73 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) +131 [IOException: Unable to read data from the transport connection: An established connection was aborted by the software in your host machine.] System.Net.ConnectStream.Read(Byte[] buffer, Int32 offset, Int32 size) +313 System.Xml.XmlTextReaderImpl.ReadData() +444 System.Xml.XmlTextReaderImpl.EatWhitespaces(BufferBuilder sb) +285 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() +74 System.Xml.XmlTextReaderImpl.ParseDocumentContent() +187 System.Xml.XmlTextReaderImpl.Read() +151 System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) +48 System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) +129 System.Xml.XmlDocument.Load(XmlReader reader) +108 System.Xml.XmlDocument.Load(Stream inStream) +91 CookComputing.XmlRpc.XmlRpcSerializer.DeserializeResponse(Stream stm, Type svcType) +189 [XmlRpcIllFormedXmlException: Response from server does not contain valid XML.] CookComputing.XmlRpc.XmlRpcSerializer.DeserializeResponse(Stream stm, Type svcType) +238 CookComputing.XmlRpc.XmlRpcClientProtocol.ReadResponse(XmlRpcRequest req, WebResponse webResp, Stream respStm, Type returnType) +111 CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(Object clientObj, MethodInfo mi, Object[] parameters) +762 CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(MethodInfo mi, Object[] Parameters) +11 XmlRpcProxyfd5eb8e7-d547-4544-bd38-7d6dc1366a49.login(String username, String password) +120

1

1 Answers

0
votes

I think that the key may be near the bottom:

+129 System.Xml.XmlDocument.Load(XmlReader reader) +108 System.Xml.XmlDocument.Load(Stream inStream) +91 CookComputing.XmlRpc.XmlRpcSerializer.DeserializeResponse(Stream stm, Type svcType) +189 [XmlRpcIllFormedXmlException: Response from server does not contain valid XML.]

Your remote server is responding with an invalid xml document, and it looks like your connection is dying because of it.