martes, 31 de julio de 2007

IIS7 y HttpHandlers = <System.WebServer>

 

Por fin llegó IIS 7 (bueno ya hace un tiempo :-D), pero ahora tocan unas cuantas cosillas a tener en cuenta y una de ellas es la que os quiero contar, si, los HttpHandlers, que cada día se encuentran mas en cada una de nuestras aplicaciones.

Si creamos en Visual Studio un proyecto de tipo Web Services y queremos trabajar un un HttpHandler, lo primero que hacemos es añadir algo similar a esto en el web.config:

<configuration>
   <system.web>

   ...
      <httpHandlers>
         <add verb="*" path="CualquierCosa.ashx" type="MyNameSpace.MiClase"/>
      </httpHandlers>

   ...
   </system.web>
</configuration>

En el momento de ejecutar nuestro código ocurre lo siguiente:

Ejecuta lo siguiente:

o, esto otro

La verdad, la solución a estos errores esta muy conseguida, y, hay poco que añadir.

El primer comando, añade una nueva sección al web.config y además coexiste con la inicial y se ejecutará aquella que se corresponda con la configuración establecida.

   <configuration>

   ...
   <system.webServer>
      <handlers>
         <add name="CualquierCosa.ashx_*" path="CualquierCosa.ashx" verb="*" type="CualquierCosa" preCondition="integratedMode,runtimeVersionv2.0" />
      </handlers>
      <validation validateIntegratedModeConfiguration="false" />
   </system.webServer>

   ...

   </configuration>

En cuanto al segundo, os cuento como configurar esto mismo, pero a través de clicks que es, lo que mejor recordamos, jejeje... Es fácil, pero bueno, no siempre vamos a postear lo dificil, ¿no?

1.- Abrir el IIS7

2.- Para el Web-Site a configurar y una vez seleccionado, hacer click en "Advanced Settings..." en el menú Actions situado a la derecha.

3.- Cambiar el Application Pool, para ello, bastará con seleccionar [Behavior-Application Pool] y elegir "Classic .NET AppPool". 

Ahora, nuestra aplicación funcionará perfectamente utilizando el modo Clásico de Pipeline.

Saludos, Juanlu


Comments:
Hola..

Me gustaria saber si esa solción la puedo aplicar desde mi Instalador de mi Web.

Hay manera que al correr el instalador me haga esa modificación en mi IIS y sea transparente para el cliente que se la venda
 
Hola Marcela.
Efectivamente puedes aplicarla sin problema, bastará con realizar las modificaciones pertinentes en el fichero de configuración y distribuirlo con tu instalador. Si quieres que esto dependa de la elección del usuario tendrás que llevar estas modificaciones en tiempo de instalación con el cuadro de diálogo adecuado del wizard de instalación (msi).
Espero haberte ayudado.
Saludos y gracías por tu confianza.
Juanlu
 
Publicar un comentario



<< Home

This page is powered by Blogger. Isn't yours?