Я также хотел бы добавить к ответ даН , что разделение обеих моделей могло позволить Вашему приложению быть выполненным на различных серверах баз данных или даже моделях базы данных.
У вас есть два серьезных выбора. И нет, кодирование собственного веб-сервера с помощью HttpListener не является производственным.
1) Используйте IIS. В нем есть масса функций для обеспечения безопасности, производительности и, что, возможно, еще важнее, управляемости , которые вам придется изобретать заново. Например, удаленное администрирование, ведение журнала, интегрированная безопасность Windows и т. Д.
2) Используйте WCF и создайте ServiceHost для размещения ваших файлов. Затем вам нужно будет реализовать свои собственные сервисы и найти способ управлять их сроками службы. Вы можете это сделать, но, опять же, если вы говорите о веб-вызовах RESTFul, IIS - это действительно правильный путь.
Следует избегать ручного развертывания собственного кода. IIS сильно изменился за последние 10 лет. Это ни в коем случае больше не большой монолитный сервер. Они разбили на модули практически все, особенно в Windows 2008, так что вы получите компактную и быструю систему.
Если вы его напишете, вам придется его поддерживать. Microsoft уже написала веб-сервер - вы должны его использовать.
Ну, как было сказано - попробуйте сначала использовать IIS.
HttpListener совсем неплох - это самый быстрый управляемый сервер-слушатель, который вы можете иметь сейчас (быстрее, чем TcpListener, и быстрее, чем Класс сокета). И это на самом деле то же ядро, что и у IIS. Но в IIS есть еще много чего.
Я не могу сказать, что IIS является монолитным - использование хостинга показало, что в Win2008 стало хуже с точки зрения стабильности и управления. Но ваше рукотворное решение может быть намного хуже. И также не забывайте - http.sys гораздо более настраиваемый, чем HttpListener. Т.е. вы не можете выполнять потоковую передачу с помощью HttpListener, но вы можете сделать это с помощью http.sys - Вопрос о потоковой передаче HttpListener
Но если у вас будет достаточно возможностей как разработчика - вы можете попробовать написать собственный http.
Мусор, катай сам. Архитектура это позволяет. Имейте в виду, что в классе есть некоторые странные поведения. Если пару раз закрыть его в службе NT, он будет рассыпаться, как мешок с слоеным тестом.
Если вы запустите его на консоли, никаких проблем, запустите его асинхронно, и все должно быть хорошо, однако запуск и остановка чертова вещь. это другая проблема, с которой я сейчас борюсь, так как никакие ошибки не создаются из герметично запечатанных Microsoft классов.
Я чувствую, что питон прибывает с небольшим количеством cherryPy