C # веб-сервер для отображения вывода консоли? - PullRequest
0 голосов
/ 24 августа 2011

Я только что закончил писать свое консольное приложение на c #, и я собираюсь встроить в него веб-сервер (вероятно, этот http://webserver.codeplex.com).. Хотя я не слишком много делаю над продвинутым веб-кодированием, поэтому яЯ не уверен, что смогу сделать то, что мне нужно.

По сути, я бы хотел, чтобы пользователи могли просматривать результаты консоли моего приложения в режиме реального времени, просто посещая сайт, обслуживаемый моим приложением. Если я понимаюправильно, чтобы сделать что-то подобное, потребуется AJAX, который не сможет обработать простой веб-сервер C #.

Это правильно или есть простой способ сделать это, которого мне не хватает?

Ответы [ 3 ]

1 голос
/ 24 августа 2011

Как перенаправить консольный вывод

Вам нужно написать свой TextWriter и заставить Console использовать его через Console.SetOut.Этот писатель должен уведомить подключенных веб-клиентов, а также оригинальный Console.Out.

Как разместить COMET-подобный сервер

Вы можете использовать HttpListener инекоторые базовые асинхронные программы для этого.Если вы оберните HttpListenerContext.Response.OutputStream в StreamWriterAutoFlush, установленным в true) и установите HttpListenerContext.Response.SendChunked в true, клиенты получат частичные результаты - это означает, что вы даже можете сделать это в IFRAME.

Вам нужно будет добавить права на URL для себя, если UAC включен:

netsh http add urlacl url=http://+:9090/ user=domain\username

Код?

Я не смог устоять;Я написал (плохо проверенный и в основном неполный) образец .

0 голосов
/ 24 августа 2011

Я бы использовал этот UtilDev Cassini в качестве выбранного мной встроенного веб-сервера, он основан на коде от встроенного сервера разработки Visual Studio и может запускать практически все, что работает в IIS. AJAX - это технология браузера, а не серверная технология, сервер просто видит запросы HTTP так же, как и любые другие. Мое последнее замечание заключается в том, что кажется немного странным встроить веб-сервер в консольное приложение. Это было бы более обычным делом с помощью службы Windows. Рассматривали ли вы преобразование консольного приложения в службу Windows?

0 голосов
/ 24 августа 2011

Это неверно.

AJAX - это метод на стороне клиента, основанный на JavaScript. Пока веб-сервер может отвечать на HTTP-запрос, он может AJAX-контент (что бы это ни значило: -).

...