Если вам нужна высокая скорость отклика HttpListener
не будет хорошо масштабироваться (вы не можете одновременно принимать более одного соединения). Но для мелкомасштабного использования, будьте осторожны, чтобы получить контекст и написать ответ асинхронно, это может сработать.
РЕДАКТИРОВАТЬ: Похоже, я неправильно понял HttpListener
способность принимать подключения. Вы можете принять несколько соединений одновременно (см. Комментарий). Однако другие возможности IIS для размещения кода не позволят изобретать колесо. Так что, если нет особых требований, препятствующих IIS, почему бы не пойти по легкому пути?
Для серьезного использования используйте IIS, создав обработчик Http (класс, который реализует IHttpHandler или IHttpHandlerFactory, или даже IHttpAsyncHandler) для обработки запросов (это базовый тип, который реализует .aspx и др.).
Правильное решение действительно зависит от того, что вы подразумеваете под «обслуживать около 500 клиентов»: по одному или все сразу?
Исходя из ответа на комментарий: 500 сразу, и учитывая, что обработка на шаге 3 включает в себя еще один HTTP-вызов, я сомневаюсь, что использование HttpListner сможет справиться с нагрузкой, не гарантируя, что каждая операция асинхронна (получение контекста и запроса выполнение следующего HTTP-запроса и затем отправка ответа) ... что приведет к более сложному кодированию.
Если нет очень веской причины избегать IIS, использовать IIS будет проще, поскольку он предназначен для поддержки крупномасштабных загрузок клиентских запросов с расширенными функциональными возможностями, тогда как HttpListener «Предоставляет простой, программно управляемый прослушиватель протокола HTTP».
РЕДАКТИРОВАТЬ: расширен на основе более подробной информации о нагрузке.