Моя компания создает "Neokernel Web Server" (http://www.neokernel.com)), который позволяет вам размещать веб-приложения ASP.NET из вашего собственного .NET-приложения без IIS. Посмотрите на демонстрацию "Bootstrapping" в разделе "demos / C # Projects "папка для примера источника, показывающая, как включить сборку Neokernel в ваше приложение и запустить или остановить его из кода приложения.
Что касается разделения трафика через порт 80, Адам Марас прав в своем ответе выше - только одно приложение может использовать данный порт TCP-сервера.
Последние версии Windows обрабатывают это через http.sys - когда вы регистрируете различные веб-сайты WCF, ASP.NET и модули-обработчики, используя стандарты web.config от Microsoft, http.sys перенаправляет входящий запрос (на порт 80) на один из зарегистрированных обработчиков (или IIS или другое приложение). Это перенаправление не произойдет, если вы запустите другое приложение на порту 80, и оно запускается раньше, чем http.sys, поэтому вместо http.sys
захватывает сокет сервера