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