06.09.2019, 10:10 | #1 |
Участник
|
DAX 2009 обращение к внешнему сервису
Есть внешний веб-сервис, для которого из WSDL сгенерирована DLL.
В течении дня происходит примерно 6 тыс обращений при этом измеряется время на выполнение каждого запроса. В измеряемое время входит - создание BasicHttpBinding - создание EndpointAddress - создание "клиента" - установка логина,пароля - открытие соединения (клиент.Open()) - выполнение запроса, получение результата - закрытие соединение (клиент.Close()) Код выполняется на сервере. Имеем такую диаграмму длительности.Провалы - дата рестарта АОСа. Как я понял притормаживает "открытие соединения" Почему это происходит? |
|
09.09.2019, 09:22 | #2 |
Участник
|
Рекомендую сделать такой же график для другого процесса, лучше двух или более, на этом же АОСе. Вполне вероятно, что вы получите похожую картинку, что говорит об общей увеличивающейся нагрузке на сервер. Если же график будет другой, тогда да причина именно в этом процессе.
|
|
09.09.2019, 10:25 | #3 |
Участник
|
1. Сделайте конфиг для клиента
2. Вынесите в конфиг Цитата:
- создание BasicHttpBinding
- создание EndpointAddress - создание "клиента" - установка логина,пароля - открытие соединения (клиент.Open()) Для тестирования рекомендую Fiddler. Можно настроить в качестве прокси, с эмуляцией ответов от сервиса. Последний раз редактировалось andiv; 09.09.2019 в 10:32. Причина: добавил про Fiddler |
|
09.09.2019, 16:12 | #4 |
Участник
|
"рестарт АОСа" в исходной сообщении - это перезапуск службы. Так что, если и есть повышенная нагрузка на сервер, то она порождена аксаптой.
Отказ от конфига в пользу кода произошел из-за того, что конфиг имеет склонность теряться частично или полностью при переходе с одного компа на другой, и при необходимость поменять конфиг. Fiddler ничего интересного не показывает - там время запроса и ответа нормальное. (когда были проблемы на сервисе, то Fiddler помог предоставить доказательства их проблем) А вот Fiddler как эмулятор сервиса можно будет попробовать. Спасибо. |
|
10.09.2019, 11:38 | #5 |
Участник
|
Возможно я некорректно выразился
Цитата:
1. Сделайте конфиг для клиента
открытие соединения (клиент.Open()) - генерация прокси, никаких соединений там не открывается. Одна из причин тормозов - ручное создание привязок. Посмотрите https://rsdn.org/article/dotnet/WCF_...ient.xml#EPCAC раздел про clientBase<T>. Если не нравится через конфиг, как вариант, можно попробовать создать клиент сервиса, как объект приложения. Клиент жив пока жив АОС. Последний раз редактировалось andiv; 10.09.2019 в 12:08. |
|
Теги |
dax2009, wsdl |
|
|