Почему я получаю прерванные сообщения? - PullRequest
1 голос
/ 07 января 2010

У меня есть веб-форма, которая отправляет данные стороннему сервису с помощью этой библиотеки из http://www.xml -rpc.net .

В последнее время форма начала выдавать исключения. Я попытался включить трассировку в файле web.config, чтобы увидеть, какие данные передаются туда и обратно, но, похоже, это решает проблему или, по крайней мере, останавливает исключение.

Есть идеи, что могло бы произойти, или как я могу диагностировать это, по-видимому, не решая проблему?

Код трассировки:

    <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>

Сообщение об исключении:

System.Net.Sockets.SocketException: установленное соединение было прервано программным обеспечением на вашем хост-компьютере [SocketException (0x2745): установленное соединение было прервано программным обеспечением на вашем хост-компьютере] System.Net.Sockets.Socket.Receive (буфер Byte [], смещение Int32, размер Int32, SocketFlags socketFlags) +73 System.Net.Sockets.NetworkStream.Read (буфер в байтах [], смещение Int32, размер Int32) +131 [IOException: невозможно прочитать данные из транспортного соединения: установленное соединение было прервано программным обеспечением на вашем хост-компьютере.] System.Net.ConnectStream.Read (буфер Byte [], смещение Int32, размер Int32) +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, читатель XmlReader, логическое preserveWhitespace) +129 System.Xml.XmlDocument.Load (программа чтения XmlReader) +108 System.Xml.XmlDocument.Load (Stream inStream) +91 CookComputing.XmlRpc.XmlRpcSerializer.DeserializeResponse (поток stm, тип svcType) +189 [XmlRpcIllFormedXmlException: ответ от сервера не содержит действительный XML.] CookComputing.XmlRpc.XmlRpcSerializer.DeserializeResponse (поток stm, тип svcType) +238 CookComputing.XmlRpc.XmlRpcClientProtocol.ReadResponse (XmlRpcRequest req, WebResponse webResp, Stream respStm, Тип returnType) +111 CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke (Объект clientObj, MethodInfo mi, Object [] параметры) +762 CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke (MethodInfo mi, Object [] Parameters) +11 XmlRpcProxyfd5eb8e7-d547-4544-bd38-7d6dc1366a49.login (имя пользователя строки, пароль строки) + 120

1 Ответ

0 голосов
/ 10 января 2011

Я думаю, что ключ может быть внизу:

+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.]

Ваш удаленный сервер отвечает недействительным XML-документом и похоже, что ваше соединение умирает из-за него.

...