views:

753

answers:

6

I have big issue with url-rewriting for IIS 7.0.

I've written simple module for rewriting for my NET3.5/IIS7 web application. Here is a part of the code.

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(context_BeginRequest);
    }

    void context_BeginRequest(object sender, EventArgs e)
    {
        HttpApplication app = sender as HttpApplication;
        if (app.Request.Path.Contains("pagetorewrite.aspx"))
            HttpContext.Current.RewritePath("~/otherpage.aspx");
    }

And I register my module in web.config :

  <system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
              <add name="MyModule" type="MyModule" preCondition="" />

Under IIS 7.0 (Vista) using Classic ASP Pipeline it works perfect, but when I change pipeline mode to Integrated, then it stops working. There are no exceptions, errors and anything in debugger/events/logfiles - only message in a browser that page was not found. The stragnest thing is that pagename looks like mispelled or merged from parts of original page and rewrte-to page.

I've deployed my code at another computer (also vista -but x64- and iis 7.0) and it works perfect in both modes. It looks that there's an configuration issue or what?

A: 

Just a guess: Qualify your type with the assembly name (type="MyModule,MyAssembly")

jlew
A: 

I'm debugging this module under VS2008 and I'm entering line with Context.RewritePath. Argument is passed corectly.In my opinion something is failing after that, but it's not possible to debug after this line. I can check your guess on Monday. Any other guesses or tricks?

tomo
A: 

Well, recommend you use URL Rewrite Module released by Microsoft which has been tested.

http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

Wish you enjoy it.

Lex Li
A: 

@lextm: Is there possible to configure rules at DB server and plugin my own url-matching function?

tomo
A: 

Finally I found working solution.

.NET 3.5 TransferRequest

tomo
A: 

I did all - but Rewritepath in IIS 7.0 do not work. Why ?