Comment enregistrer votre application en \ avec http.sys?
-
25-09-2019 - |
Question
Je créé un TCP \ serveur HTTP (en C #). Je veux lui donner l'espace de noms sur mon 80 port de près d'autres serveurs HTTP que j'ai. Comment faire une telle chose (étape - par étape)?
La solution
Regardez HTTP Tâches serveur dans les spécifications MSDN:
- Initialiser API de service HTTP, appelez HttpInitialize
- Enregistrement des URL avec HTTP.SYS, appel HttpAddUrlToUrlGroup
- Recevoir une demande, appelez HttpReceiveHttpRequest
- Envoyer une réponse, appelez HttpSendHttpResponse
- Nettoyage après urself, appelez HttpRemoveUrl et HttpTerminate
Il y a un aussi un exemple d'application à part entière à serveur HTTP Exemple d'application.
Comme vous pouvez le voir clairement, API HTTP.SYS est une API C destinée à des applications C. Vous ne devriez pas l'utiliser à partir de C #, et je recommande contre pInvoking l'API ensemble. Les applications gérées ont la possibilité d'utiliser des modules HTTP et étendre le traitement ASP.Net. Cette avenue se chargera de nombreux détails nécessaires à un serveur géré, comme l'activation, l'hébergement, le suivi et le recyclage processus et ainsi de suite et ainsi de suite.
Autres conseils
La façon dont vous interagiraient normalement avec http.sys est par l'enregistrement d'une DLL ISAPI avec IIS. Ceci est un bon point de départ.