2010-05-29 17 views
15

tengo el siguiente módulohttpModules que no trabaja en iis7

public class LowerCaseRequest : IHttpModule { 
    public void Init(HttpApplication context) { 
     context.BeginRequest += new EventHandler(this.OnBeginRequest); 
    } 

    public void Dispose() { } 

    public void OnBeginRequest(Object s, EventArgs e) { 
     HttpApplication app = (HttpApplication)s; 

     if (app.Context.Request.Url.ToString().ToLower().EndsWith(".aspx")) { 
      if (app.Context.Request.Url.ToString() != app.Context.Request.Url.ToString().ToLower()) { 
       HttpResponse response = app.Context.Response; 

       response.StatusCode = (int)HttpStatusCode.MovedPermanently; 
       response.Status = "301 Moved Permanently"; 
       response.RedirectLocation = app.Context.Request.Url.ToString().ToLower(); 
       response.SuppressContent = true; 
       response.End(); 
      } 
      if (!app.Context.Request.Url.ToString().StartsWith(@"http://zeeprico.com")) { 
       HttpResponse response = app.Context.Response; 

       response.StatusCode = (int)HttpStatusCode.MovedPermanently; 
       response.Status = "301 Moved Permanently"; 
       response.RedirectLocation = app.Context.Request.Url.ToString().ToLower().Replace(@"http://zeeprico.com", @"http://www.zeeprico.com"); 
       response.SuppressContent = true; 
       response.End(); 
      } 
     } 
    } 
} 

el web.config parece

<system.web> 
    <httpModules> 
     <remove name="WindowsAuthentication" /> 
     <remove name="PassportAuthentication" /> 
     <remove name="AnonymousIdentification" /> 
     <remove name="UrlAuthorization" /> 
     <remove name="FileAuthorization" /> 
     <add name="LowerCaseRequest" type="LowerCaseRequest" /> 
     <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" /> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
</httpModules> 
</system.web> 

Funciona rejilla en mi PC con XP y IIS 5.1

sino en mi servidor web ejecutando IIS7 y WS 2008 no funcionan, por favor ayuda, no sé cómo resolver esto.

Gracias

Respuesta

35

En IIS7 y de uso más alta

<configuration> 
    <system.webServer> 
    <modules> 
     <add name="CustomModule" type="Samples.CustomModule" /> 
    </modules> 
    </system.webServer> 
</configuration> 
+0

Gracias, En realidad tengo que ahve en ambos sentidos ya que mi entorno en desarrollo es iis5.0 y mi entorno en vivo es iis7 – roncansan

+1

+1 Gracias. Qué PITA fueron y cambiaron eso. – Sam

0

En IIS función Ir a la vista de selección de módulo

doble click al módulo clic luego a la derecha y pulse (Agregar módulo administrado)

luego ponga nombre y tipo como se define en web.config

ejemplo:

<httpModules> 
    <add name="CustomModule" type="WebApplication.Security.CustomModule" /> 
</httpModules> 
0

anterior es correcta para IIS 7,5

<modules> 
    <add name="CustomModule" type="Samples.CustomModule" /> 
</modules> 

el único problema que tengo, es que la instancia del grupo de aplicaciones para una aplicación particular se debe establecer en canalización administrada = integrado, no clásico ..
o: uso del modo clásico

Si su aplicación es utilizar el modo clásico, a continuación, asegúrese de que su aplicación está configurada para ese tipo de caca l y sus módulos están configurados en la sección system.web y no en la sección system.webServer del archivo web.config.