Estoy intentando escribir algunas pruebas unitarias que prueban los puntos finales para mi servicio WCF y para hacer esto deseo alojar el servicio dentro de las pruebas de la unidad en vez de en IIS. He encontrado this article que he leído y hecho los cambios, así que lo estoy hospedando usando ServiceHost
y puedo ver que las pruebas unitarias están intentando ejecutarlo, pero parece que estoy teniendo un problema.Hosting Servicio WCF en Prueba unitaria usando ServiceHost
Cuando ejecuto las pruebas, me sale el siguiente error en el punto de abrir el servicio:
Este servicio requiere ASP.NET compatibilidad y debe estar alojado en IIS. De cualquier alojar el servicio en IIS con la compatibilidad de ASP.NET encendido en web.config o establecer la propiedad AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode a un valor distinto de requeridos.
Esto es causado por el atributo siguiente configuración en mi clase de servicios:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
entonces he tratado de añadir el siguiente en mi app.config pero no parece hacer ninguna diferencia :
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
¿Alguna idea de cómo puedo superar este problema?
que es fácil arreglar: solo eliminar e el requisito de compatibilidad ASP.NET. No, en serio: deberías. –
Al final lo hice, simplemente eliminé el atributo. Estaba preocupado de que no supiera la razón exacta por la que estaba allí en primer lugar, pero supongo que es por eso que tenemos pruebas unitarias, CI y compilaciones nocturnas. :) – Penfold
Lo necesitarías de nuevo cuando empieces a perder el 'HttpContext';) ¡Entonces, por supuesto, el autohosting se sale de la ventana! –