Как зарегистрировать ваше приложение в Http.sys?
-
25-09-2019 - |
Вопрос
Итак, я создал TCP\HTTP-сервер (IN C#).Я хочу предоставить ему пространство имен на моем порту 80-х рядом с другими имеющимися у меня HTTP-серверами.Как это сделать (пошагово)?
Решение
Посмотри на Задачи HTTP-сервера в спецификации MSDN:
- Инициализируйте API службы HTTP, вызовите HttpInitialize
- Зарегистрируйте URL-адреса с помощью HTTP.SYS, позвоните HttpAddUrlToUrlGroup
- Получите заявку, позвоните HttpReceiveHttpRequest
- Отправьте ответ, позвоните HttpSendHttpResponse
- Уборка за собой, звоните HttpRemoveUrl и HttpTerminate
Также имеется полноценный образец приложения по адресу Пример приложения HTTP-сервера.
Как вы можете ясно видеть, HTTP.SYS API — это API C, предназначенный для приложений C.Вам не следует использовать его из C#, и я бы рекомендовал не использовать pInvoction всего API.Управляемые приложения имеют альтернативу использованию HTTP-модули и расширить обработку ASP.Net.Этот способ позаботится о многих деталях, необходимых на управляемом сервере, таких как активация, хостинг, мониторинг и переработка процессов и т. д. и т. п.
Другие советы
Обычно вы взаимодействуете с http.sys путем регистрации библиотеки ISAPI DLL в IIS. Это хорошая отправная точка.