Я ищу небольшой веб-сервис для запуска на небольшом Linux-компьютере. Я предпочитаю кодировать на C #, поэтому я хочу использовать Mono.
Я не хочу использовать полнофункциональный веб-сервер или версию ASP.NET для Mono. Я думаю о единственном процессе с потоком, имеющим дело с каждым клиентским соединением. Общая память между потоками вместо базы данных.
Я немного прочитал о версии HttpListener от Microsoft и о том, как она работает с драйвером Http.sys. Увы, документация Mono для этого класса - это просто автоматизированный интерфейс класса без обсуждения того, как он работает под капотом. (В Linux нет Http.sys, поэтому я думаю, что он реализован существенно по-другому.)
Может ли кто-нибудь указать мне на некоторые ресурсы, обсуждающие этот модуль, пожалуйста?
Большое спасибо, Билл, billpg.com
(Небольшая предыстория моего вопроса для интересующихся.)
Некоторое время назад я задал этот вопрос , заинтересованный в том, чтобы вести долгий разговор с большим количеством вопросов. Я решил разработать собственный протокол ad-hoc, но люди, с которыми я общался, действительно хотели REST-интерфейс, даже за счет сигнала «Хорошо, пошли свою команду сейчас».
Итак, я задумался о запуске ASP.NET на сервере Linux / Mono, но наткнулся на HttpListener. Это казалось идеальным, поскольку каждый «разговор» мог проходить в отдельном потоке. Поток, который вызывает HttpListener в цикле, может найти, для какого потока предназначено каждое входящее соединение, и передать ссылку на этот поток.
В качестве альтернативы для службы, управляемой ASP.NET, код ASPX должен выбрать состояние из базы данных и записать новое состояние после его завершения. Да, это сработало бы, но это много накладных расходов.