2016-02-28 1 views
0

я создал сервер HTTP с помощью C# и я взял идею из hereМой C# HTTP-сервер не работает с ASPX страниц

Он работает с HTML-страниц. Я попытался добавить aspx mime-type, как этот «text/aspx» , но он не работает, он все еще открыт, как текстовый файл!

Любые идеи?

+0

Я бы хотел порекомендовать вам прочитать об ASP сначала. Я имею в виду, что это схемы, как это работает, что он делает. – Khazratbek

+1

Ваш сервер должен выполнить специальную магию для запуска asp, для более простых CGI-подобных фреймворков, таких как PHP, ваш сервер просто вызывает исполняемый файл и возвращает стандартный вывод этого исполняемого файла в браузер. С ASP, который тесно интегрирован с IIS, вам нужно зацепиться в нужном месте, например, уволить HttpModule/HttpHandler и предоставить все данные, необходимые для фреймворка – csharpfolk

ответ

2

Я предполагаю, что вы использовали только статическую обработку ресурсов для своего веб-сервера. Однако для того, чтобы ASP (X) (или любой другой динамический контент) работал должным образом, вам нужен сложный конвейер, который загружает файл, компилирует его, запускает код в правильном контексте и возвращает результат (и это очень упрощенный описание).

В общем, это не мудрая идея реализовать свой собственный стек сервера. Вы, скорее всего, окажетесь в уязвимом и плохо исполняющемся программном обеспечении. Просто используйте существующий веб-сервер (или, может быть, даже просто Cassini, если вы действительно хотите видеть работу внутренних компонентов).

+0

В зависимости от того, что вы пытаетесь сделать, это неплохая идея, это правильный путь, например, Служба REST, использующая IIS для этого, просто перебор, но использование httplistener более чем достаточно, просто взгляните на ServiceStack или подумайте о небольшой программе, обслуживающей веб-интерфейс, вы не можете заставить пользователя устанавливать IIS. .. – Gusman

+0

ОК, я думаю, что это долгий путь, и я столкнусь с такими проблемами. Я могу использовать другой программный сервер, который предоставляет службы asp, такие как IIS express, и позволяет мне использовать определенный IP для трансляции моего сайта, не используя 127.0.0.1 или localhost , Есть какой-либо способ сделать это ? –

+0

@ Гусман, я согласен, что существуют допустимые варианты использования для 'HttpListener'. Однако вопрос (почему ASPX не запускается?), И ссылка на статью (которая создает HTTP-сервер на основе сокета, с сомнительной обработкой буфера и разбором запроса) на самом деле не способ пойти IMHO. – Lucero