Использовать HttpListener для производственного веб-сервера калибра?

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

9
задан 13 August 2009 в 10:30
поделиться

4 ответа

У вас есть два серьезных выбора. И нет, кодирование собственного веб-сервера с помощью HttpListener не является производственным.

1) Используйте IIS. В нем есть масса функций для обеспечения безопасности, производительности и, что, возможно, еще важнее, управляемости , которые вам придется изобретать заново. Например, удаленное администрирование, ведение журнала, интегрированная безопасность Windows и т. Д.

2) Используйте WCF и создайте ServiceHost для размещения ваших файлов. Затем вам нужно будет реализовать свои собственные сервисы и найти способ управлять их сроками службы. Вы можете это сделать, но, опять же, если вы говорите о веб-вызовах RESTFul, IIS - это действительно правильный путь.

Следует избегать ручного развертывания собственного кода. IIS сильно изменился за последние 10 лет. Это ни в коем случае больше не большой монолитный сервер. Они разбили на модули практически все, особенно в Windows 2008, так что вы получите компактную и быструю систему.

6
ответ дан 4 December 2019 в 11:43
поделиться

Если вы его напишете, вам придется его поддерживать. Microsoft уже написала веб-сервер - вы должны его использовать.

2
ответ дан 4 December 2019 в 11:43
поделиться

Ну, как было сказано - попробуйте сначала использовать IIS.

HttpListener совсем неплох - это самый быстрый управляемый сервер-слушатель, который вы можете иметь сейчас (быстрее, чем TcpListener, и быстрее, чем Класс сокета). И это на самом деле то же ядро, что и у IIS. Но в IIS есть еще много чего.

Я не могу сказать, что IIS является монолитным - использование хостинга показало, что в Win2008 стало хуже с точки зрения стабильности и управления. Но ваше рукотворное решение может быть намного хуже. И также не забывайте - http.sys гораздо более настраиваемый, чем HttpListener. Т.е. вы не можете выполнять потоковую передачу с помощью HttpListener, но вы можете сделать это с помощью http.sys - Вопрос о потоковой передаче HttpListener

Но если у вас будет достаточно возможностей как разработчика - вы можете попробовать написать собственный http.

6
ответ дан 4 December 2019 в 11:43
поделиться

Мусор, катай сам. Архитектура это позволяет. Имейте в виду, что в классе есть некоторые странные поведения. Если пару раз закрыть его в службе NT, он будет рассыпаться, как мешок с слоеным тестом.

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

Я чувствую, что питон прибывает с небольшим количеством cherryPy

4
ответ дан 4 December 2019 в 11:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: