asp.netiisurl-rewritinghttp-status-code-503helicontech

helicon isapi rewriter 3 asp.net 503.18 error the same page with different friendly URLs


I have a asp.net site with many applications, virtual directories and several application pools. For URL rewriting I use Helicon ISAPI rewriter, version 3. I have one page (lets say 'page.aspx') that should be accessible by different URLs, different URLs rewrites in different values for single query string param. All Helicon rules was tested on my local environment but after deploying to server I encountered problems.

I have URLs:

URL1: '/product-one/'
URL2: '/product-one-another-version/'

Content on both pages that displays for 'productone' and 'productoneversion' is completely identical, but first URL is accessible and second one shows me 403.18 error. As I found, this errors signals that URL is rewrited from one pool to another. But this is the same page after all, why one URL works and another doesn't!

These URLs successfully(I checked it in helicon and IIS logs) rewrites to following original URLs:
URL1: '/folder/page.aspx?product=productone'
URL2: '/folder/page.aspx?product=productoneversion'

I have 8 different options for 'product' parameter. Content on page is the same if param is equal 'productone' or 'productoneversion' and differs on other versions of page. Only 2 of 8 URLs works via Helicon. The rest of pages throws 403.18 error. But if I use original URLs with different query params all page versions works as expected.

Please help me to figure out what's wrong with my settings, and how can I fix it?

my machine: win 8 enterprise, IIS 8
server: win server 2012, IIS 8


Solution

  • I noticed that '2 of 8 URLs works', '/product-one/' and '/product-four/'. And also I noticed that there are Web Applications in IIS with same names - 'product-one' and 'product-four'. These apps are running the same application pool as web application that contains original page 'page.aspx'.

    So I created six more web application in IIS with needed names ('product-two', 'product-three', etc.) and made them use corresponding application pool and pointed to new empty folder.

    I know, this is not an elegant solution, but it works for me.