Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
sp:wcf [2009/03/05 12:25] alfred |
sp:wcf [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 323: | Línea 323: | ||
| </system.serviceModel> | </system.serviceModel> | ||
| </code> | </code> | ||
| + | |||
| Línea 334: | Línea 335: | ||
| ==== Autentificación en IIS ==== | ==== Autentificación en IIS ==== | ||
| === Conexión segura en IIS === | === Conexión segura en IIS === | ||
| - | Las conexiones seguras en IIS se basan en SSL y es por ello que tenemos que tenerlo activo en nuestro servidor. Una vez esto sea así, configuraremos la seguridad a partir de la capa de transporte, sin ningún tipo de validación de usuario... Todavía. \\ \\ | + | Las conexiones seguras en IIS se basan en SSL y es por ello que tenemos que tenerlo [[code:tools#activar_ssl|activo en nuestro servidor]]. Una vez esto sea así, configuraremos la seguridad a partir de la capa de transporte, sin ningún tipo de validación de usuario... Todavía. \\ \\ |
| Es de remarcar el hecho que en la configuración tengamos que tener ''httpsGetEnabled'' (en vez de ''httpGetEnabled'') a ''true''. | Es de remarcar el hecho que en la configuración tengamos que tener ''httpsGetEnabled'' (en vez de ''httpGetEnabled'') a ''true''. | ||
| <code xml> | <code xml> | ||
| Línea 371: | Línea 372: | ||
| ==== Creación de un cliente sencillo ==== | ==== Creación de un cliente sencillo ==== | ||
| Desde VS .NET 2008 es una tarea muy sencilla, podemos hacerlo desde la línea de comandos del SDK gracias al comando ''svcutil'' o //agregando una referencia a un servicio// (haciendo botón derecho sobre el proyecto de la aplicación). Estas dos operaciones crearían una clase que se utilizaría para acceder al web service como si de una clase normal se tratase, sólo que esta está enlazada con el exterior. | Desde VS .NET 2008 es una tarea muy sencilla, podemos hacerlo desde la línea de comandos del SDK gracias al comando ''svcutil'' o //agregando una referencia a un servicio// (haciendo botón derecho sobre el proyecto de la aplicación). Estas dos operaciones crearían una clase que se utilizaría para acceder al web service como si de una clase normal se tratase, sólo que esta está enlazada con el exterior. | ||
| + | |||
| Línea 426: | Línea 428: | ||
| } | } | ||
| </code> | </code> | ||
| + | ===== Otros ===== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Activar la compatibilidad con ASP.NET ==== | ||
| + | A veces necesitamos guardar información del usuario en, por ejemplo, sesiones, pero por defecto no lo podemos hacer simplemente accediendo a ''System.Web.HttpContext.Current.Session''. Para poder acceder al contexto web desde un servicio de WCF deberemos hacer dos cosas: | ||
| + | * Activar la compatibilidad desde el archivo de configuración: | ||
| + | <code xml> | ||
| + | <system.serviceModel> | ||
| + | <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> | ||
| + | ... | ||
| + | </code> | ||
| + | * Agregar el atributo ''AspNetCompatibilityRequeriments'' a la clase del servicio (como ''Allowed''): | ||
| + | <code csharp> | ||
| + | [System.ServiceModel.Activation.AspNetCompatibilityRequirements(RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Allowed)] | ||
| + | public class PiuService : ISAMERWService { | ||
| + | ... | ||
| + | </code> | ||
| + | |||
| + | |||
| ===== Notas ===== | ===== Notas ===== | ||
| Línea 435: | Línea 458: | ||
| ... | ... | ||
| </code> | </code> | ||
| - | + | * Para cambiar el usuario con el que se ejecuta el servicio en IIS deberemos [[sp:wcf#activar_la_compatibilidad_con_asp.net|activar la compatibilidad con asp.net]]. | |
| - | + | * Con la instalación de Visual Studio se nos instala una herramienta denominada //Microsoft Service Configuration Editor//, muy útil para editar de una forma clara los archivos de configuración de un proyecto que involucren servicios. Podemos acceder desde //Inicio -> Programas -> SDK -> Tools//. | |
| ==== IIS ==== | ==== IIS ==== | ||