Как реализовать SoapHttpClientProtocol - PullRequest
0 голосов
/ 22 декабря 2009

Поскольку этот вопрос говорит мне, что SoapHttpClientProtocol не является потокобезопасным. И мое реальное тестирование говорит мне, что это правда, так как мои свойства SoapHeader постоянно смешиваются между вызовами. Есть ли способ убедиться, что я могу использовать это в потоках и сохранить мои свойства правильными? И убедитесь, что я не сталкивался с приведенным в этом вопросе примером того, как один поток думает, что соединение открыто, когда другой поток закрыл его? Нужно ли беспокоиться о значениях заголовка мыла после того, как мой запрос был сделан? Как я могу проверить, соответствуют ли свойства так, как я их установил, до тех пор, пока не будет выполнен запрос?

1 Ответ

1 голос
/ 23 декабря 2009

Первое, что я хотел бы спросить, работает ли ваш сервис правильно, если вы не делаете его многопоточным. Если вы делаете последующие звонки, все ли они работают правильно и дают ли вы желаемые результаты? Если нет, то проблема на стороне сервера более чем вероятна.

Чтобы увидеть, что вы отправляете, вы можете сериализовать мыльное сообщение перед его отправкой. Убедитесь, что он генерируется правильно.

Моя работа блокирует доступ ко многим веб-сайтам, но у CodeProject есть несколько примеров, если я правильно помню.

Если работает один поток, создайте слой сериализации и запишите файлы на диск в многопоточном сценарии. Затем вы можете увидеть, что работает, а что нет, исходя из того, что ваш код считает отправкой.

Скорее всего, ваши вызовы смешиваются сервером, поскольку вы пытаетесь установить несколько соединений, в то время как ваша конечная точка может восприниматься как одно значение, что-то вроде того, что вы находитесь за межсетевым экраном NAT. Это означает, что вы можете получить соединение, но один из ваших других потоков сначала получает свое сообщение. Если это так, вы можете попробовать раскрутить каждый поток в своем домене приложений и посмотреть, поможет ли он вам. Не говоря о том, что это сработает, но я не уверен, что у меня еще есть, что еще можно попробовать.

...