2009-10-04 21 views

Respuesta

0

Dado que esta cuestión fue publicada originalmente, mucho mejores soluciones al problema han sido liberados.

Si está apuntando a .Net Core, es trivial autoevaluar ASP.Net Core utilizando el WebHostBuilder.

Otra solución es Nancy, que también es fácil de self-host.

1

Siempre puede usar WCF para alojar un punto final dentro del servicio y exponerlo de esa manera.

Las únicas otras opciones que puedo pensar incluirían tener algún archivo que una aplicación web podría escribir y el servicio podría leer, o una base de datos escrita por el sitio web y leída del servicio. Ninguno de ellos es tan elegante como simplemente exponer un punto final de comunicación a través de WCF.

Editar - Añadido

Específicamente, estaba pensando en exponer esto como un punto final HTTP y la interfaz directamente con el navegador de la manera que lo haría un servicio web.

Sin embargo, no hay ninguna razón por la que no pueda tener configurada una aplicación Asp.Net tradicional para comunicarse con el servicio, siempre que el servicio aloje un punto final de comunicación.

+0

+1 Creo que este es el enfoque más limpio, especialmente el alojamiento anterior de un servidor web en proceso. Uso WCF así. Le permite diseñar la solución limpiamente separando las preocupaciones. El servicio WCF expone una API, pero se mantiene independiente de la interfaz de usuario. Quizás hoy exponemos como página web, pero mañana también ofrecemos una herramienta de escritorio. – codenheim

1

Si usted está buscando en la interfaz de usuario en lugar de una interfaz de servicio web hay un par de cosas que podría hacer:

1) Puede ser más de lo necesario, pero que podría alojar ASP.NET en su servicio a través de la base de código original de Cassini: http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx

2) También podría simplemente abrir un puerto, y poner una simple página HTML en hilos separados en su servicio dependiendo de cuánto espera que acceda al servicio.

He hecho ambas cosas varias veces, y cualquiera de ellas es bastante sencilla siempre y cuando no se preocupe por la seguridad, por ejemplo. la máquina solo es accesible desde una intranet confiable. Si ese no es el caso, es mejor que alojes IIS en la máquina y escribas una aplicación web segura.

2

He estado queriendo hacer exactamente lo mismo con un servicio de Windows que he creado. Es posible que finalmente haya encontrado un artículo que ayudará. Todavía no lo he intentado, pero creo que tiene la base de lo que ambos necesitamos, junto con la fuente de muestra.

El objetivo del artículo es cómo alojar un servicio web (ASMX) desde su código, pero supongo que podría albergar fácilmente una página ASPX.

http://msdn.microsoft.com/en-us/magazine/cc163879.aspx

-Derek

+0

Gracias por su respuesta. Ya miré System.Web.Hosting (en realidad, miré a Cassini), y me pareció un poco complejo para mis necesidades. Realmente no necesito alojar páginas aspx, solo quiero poder responder a las solicitudes entrantes con código. En realidad, he empezado a trabajar en un proyecto que solo hace eso, usando System.Net.HttpListener. Planeo hacer que esté disponible como código abierto cuando tengo una primera versión. Agregaré una respuesta a esta pregunta cuando lo haga. –

1

Editar: Súplica no uses esto Era una simple prueba de concepto y nunca fui a ninguna parte con eso.Por favor vea mi otra respuesta para better solutions.


Bueno, mejor tarde que nunca. No tuve mucho tiempo para trabajar en eso.

http://github.com/leddt/SimpleHttpServer

Esto es algo muy básico, y no destinadas a su uso en producción. Es un proyecto pequeño con el que estoy experimentando. Sin embargo, tomaré comentarios, sugerencias, etc. ...

Cuestiones relacionadas