2011-01-23 3 views
1

Мне интересно, какой был бы лучший выбор: размещение службы WCF http в IIS или создание веб-сайта в IIS и использование HttpModule для обработки запросов?HttpModule против службы WCF на хосте IIS

Возможно ли разместить службу WCF http в службе Windows?

Служба/httpmodule регистрирует только текст сообщения входящих сообщений, ничего не возвращает.

Хорошая производительность, например. 300 сообщений/сек. имеет решающее значение.

ответ

1

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

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

WCF имеет встроенные функции диагностики, позволяющие записывать сообщения без написания кода (см. MSDN), но для изучения WCF требуется немного больше усилий. Преимущество этого заключается в том, что если вы заметили, что ведение журнала слишком сильно влияет на производительность, вы можете отключить его, не переписывая приложение.

Является ли ваша заявка только протоколов и вообще ничего не делать? Если это так, я бы рекомендовал вместо базы данных использовать базу данных (SQL Server, mySQL и т. Д.) - это обеспечит гораздо лучшую производительность.

+0

Я действительно предпочитаю вариант базы данных, чтобы проблемы параллелизма и ведения домашнего хозяйства были решены из коробки. HttpModule получает текст POST в потоке, параметр Wcf получает данные POST, завернутые в xml (то есть xml в xml, потому что сам пост является мыльным конвертом). Модуль http выглядит так просто - с другой стороны, wcf является стандартом, поэтому я разместил вопрос. – Gerard

1

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

Я думаю, что производительность действительно зависит от рабочей нагрузки, которую обслуживает сервис.

Я бы предпочел службу WCF над HttpModule, поскольку WCF завершает обработку SOAP для вас, и вам придется кататься самостоятельно, если вы создаете модуль.

+0

Что вы имеете в виду, завернув обработку мылом? HttpModule содержит тело запроса, которые являются данными мыла, которые я должен записывать/сохранять как текст. – Gerard

Смежные вопросы