Служба WCF, вызывающая другую службу WCF, работает медленно

#c# #.net #wcf

#c# #.net #wcf

Вопрос:

У меня есть проект, в соответствии с которым у нас есть служба WCF, которая обращается к хранилищу данных, представленному как другая служба WCF. Идея, лежащая в основе этого, заключается в том, чтобы придерживаться SOA и иметь потенциал для балансировки нагрузки по фактической службе и уровню доступа к данным, а также позволить хранилищу данных массово изменяться без влияния на начальную службу.

Проблема в том, что они работают на IIS6, и шифрование должно быть включено.

При включенных обеих службах мы получаем средние значения приблизительно

Среднее количество запросов в секунду: 4.75469280423686 более 400 вызовов.

Но если я удалю вызов службы для второй службы и заменю абсолютной ссылкой, это почти удваивается до

Среднее количество запросов в секунду: 8.52248037501811 более 400 вызовов.

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

Я должен добавить, что это не одновременные вызовы.

Комментарии:

1. Вы когда-нибудь находили решение для этого? Я вижу аналогичную проблему, и отследить источник чрезвычайно сложно.

Ответ №1:

Работают ли обе веб-службы на одном компьютере и в одном пуле приложений? У меня была такая же проблема раньше; в конечном итоге мы полностью сократили эту архитектуру, но я считаю, что этому можно было бы помочь, поместив их в разные пулы приложений.

Кроме того, поскольку вы упомянули IIS6, .Net может сдерживать вас: проверьте http://msdn.microsoft.com/en-us/library/ff647787.aspx (Глава 6: Совершенствование ASP.NET Производительность) — особенно раздел «Объяснение потоков». (IIS6 по умолчанию не имеет соответствующего количества потоков .Net для вашего процессора — у IIS7 есть.)

Удачи!

Комментарии:

1. Они очень часто работают в одном и том же пуле приложений.. Я попробую это. в настоящее время потоковая передача даже не входит в нее, все мои тесты требуют 400 последовательных запросов, где есть сопоставление запросов 1: 1 с S1-> S2

2. Интересно, похоже, что при каждом подключении к IIS происходит задержка, даже изнутри. Есть ли у вас поведение службы, которое занимает некоторое время, например, аутентификация в заголовке SOAP?