Я пытаюсь использовать веб-сервис, который создавался с использованием Soap :: Lite (Perl).Я использую сервис с использованием C #.По большей части это работает отлично.Я могу захватить ответы и разобрать их, как считаю нужным.Однако у меня есть определенные вызовы, которые не работают.
Я получаю следующее сообщение: «Существующее соединение было принудительно закрыто удаленным хостом»
Насколько я понимаю, сервер, вероятно, обрезаетотключить соединение по любой причине.Я пытаюсь найти эту причину.Я думаю, что это происходит из-за размера деталей некоторых ответов.У меня есть один, который всегда будет терпеть неудачу, и когда я просматриваю XML из ответа SOAP, он всегда усекается в том же месте, как если бы он достиг этого места и достиг предела размера.
Итак, я сделал все, что мог придумать для размера клиента, например, изменил параметры MaxReceivedMessageSize и timeout, и т. Д. Я заметил, что могу увеличить тайм-ауты, и время выполнения впоследствии увеличивается, но ведение журнала диагностикивыполнение всегда останавливается в одном и том же месте.
Я также написал класс, который позволяет мне просматривать необработанный XML, и снова он останавливается в том же месте.
Я думаю, может бытьчто-то на сервере нужно изменить, но все, что я пробовал, не работает.Служба размещена на веб-сервере под управлением IIS 6.
У кого-нибудь есть предложения по поводу того, что я могу сделать на стороне клиента и / или сервера?
Спасибо
EDIT
Я должен отметить, что для меня нет файла WSDL.Приложение, с которым я работаю, - единственный раз, когда я работал с SOAP :: Lite, и насколько я могу судить, оно не генерирует WSDL.
@ e36M3 - Спасибо за предложение.Я никогда не слышал о soapUI.Я установил его и опробовал, и я вижу много вариантов его использования, поэтому буду помнить об этом в будущем.К сожалению, похоже, что оно построено на тестировании WSDL, и я не могу понять, как проводить тестирование с ним, не предоставив WSDL, что является проблемой в данной конкретной ситуации.
Вот некоторые соответствующие данные измой журнал трассировки.Он начинается там, где заканчивается недействительный xml, и заканчивается информацией об ошибке.
System.Net Verbose: 0: [5772] 000031E0; / map>.System.Net Verbose: 0: [5772] 000031E0>.System.Net Verbose: 0: [5772] 000031E0 esp1: MRWebServicSystem.Net Verbose: 0: [5772] 000031E0 es__getIssueDetaSystem.Net Verbose: 0: [5772] 000031E0 ilsResponse> System.Net Verbose: 0: [5772] 000031E0 AP-ENV: Body> System.Net Verbose: 0: [5772] 000031E0 AP-ENV: Конверт>System.Net Verbose: 0: [5772] Выход из ConnectStream # 15566556 :: Read () -> 12880 # 12880
System.Net Verbose: 0: [5772] ConnectStream # 15566556 :: Read ()System.Net.Sockets Verbose: 0: [5772] Сокет # 20784002 :: Receive ()Ошибка System.Net.Sockets: 0: [5772] Исключение в сокете # 20784002 :: Receive - попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через определенный период времени, или не удалось установить соединение, так как подключенному хосту не удалосьреагироватьSystem.Net.Sockets Verbose: 0: [5772] Выход из сокета # 20784002 :: Receive () -> 0 # 0System.Net.Sockets Verbose: 0: [5772] Сокет # 20784002 :: Dispose ()Ошибка System.Net: 0: [5772] Исключение в запросе HttpWebRequest # 63722612 :: - Основное соединение было закрыто: при получении произошла непредвиденная ошибка.System.Net Verbose: 0: [5772] ConnectStream # 15566556 :: Закрыть ()System.Net Verbose: 0: [5772] Выход из ConnectStream # 15566556 :: Close ()