Pregunta

¿Es realista utilizar la clase C # .Net HttpListener como la base para un servidor calibre producción web?

El servicio web http necesito para alojar no contiene .aspx o archivos estáticos. Todas las respuestas HTTP son dinámicas y se genera en código C # que se invoca a través de un par de sentencias switch que inspeccionan un formato URL reparador.

Mi pensamiento es que IIS es realmente un envoltorio de modo de usuario alrededor del módulo o / s HTTP-SYS núcleo de Windows que hace todo el manejo de la red de alta resistencia y por lo tanto es HttpListener.

Ya tengo una ejecución servidor web multiproceso básica, que es excelente para el desarrollo ya que se inicia en modo de depuración en un ejemplo, ahora estoy pensando qué necesito el exceso de IIS para la producción. Una huella de memoria baja es otro de los atractivos.

¿Fue útil?

Solución

Existen dos opciones serio aquí. Y no, la codificación de su propio servidor web con HttpListener no es de calidad industrial.

1) Uso IIS. Tiene un montón de características de seguridad, rendimiento, y quizás más importante, gestión , que tendría que reinventarse a sí mismo. Al igual que la administración remota, la tala, la seguridad de Windows integrada, etc.

2) El uso de WCF y crear un ServiceHost para alojar sus archivos. A continuación, tendrá que poner en práctica sus propios servicios y encontrar una manera de manejar su vida. Puede hacerlo, pero de nuevo, si estamos hablando de llamadas web reparador, IIS es realmente el camino a seguir.

rodando manual de su propia debe ser evitado. IIS ha cambiado mucho en los últimos 10 años. Es de ninguna manera un servidor monolítico grande más. Han modularizados casi todo, especialmente en Windows 2008, para que pueda obtener un sistema ligero y rápido.

Otros consejos

Bueno, como se dijo -. Trate de usar IIS en un primer momento

HttpListener no está mal del todo - ese servidor oyente más rápido conseguido que puede tener ahora (más rápido que TcpListener y más rápido que clase Socket). Y es en realidad el mismo núcleo que con IIS. Pero IIS tiene un montón de cosas más.

No puedo decir IIS está monolito - el uso de alojamiento muestra que se hizo peor en Win2008 en términos de estabilidad y manejo. Pero su solución hecha a mano puede ser mucho peor. Y también no se olvide - http.sys mucho más personalizable que HttpListener. Es decir. no se puede hacer el streaming con HttpListener, pero se puede hacer eso con http.sys - Pregunta HttpListener acerca de streaming

Pero si va a tener suficiente poder como desarrollador -. Puede intentar redactar propio envoltorio http.sys y que es mejor método de escritura propio servidor web en Windows

Basura, hágalo usted mismo. La arquitectura permite. Tened en cuenta que hay algunos comportamientos extraños en la clase. Cerrando hacia abajo un par de veces en un servicio NT hace que sea raro como una bolsa de pasteles de hojaldre.

Si lo ejecuta en la consola, no hay problema alguno, se ejecuta asíncrono y todos deben estar bien, sin embargo, iniciar y detener la maldita cosa. eso es un asunto distinto que actualmente estoy luchando con como sin errores se producen a partir del sellado herméticamente Microsoft clases.

Me siento pitón viene con un pequeño toque de cherrypy

Si usted lo escribe, entonces usted tiene que mantenerla. Microsoft ya ha escrito un servidor web -. Que se debe utilizar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top