views:

310

answers:

1

I have searched the web for this and couldn't find anything (well one remotely relevant post), so here I am.

We have multiple ASP.NET apps in IIS 6 using Forms Authentication with dedicated path for each app. Since path is case sensitive it must match URL's path section exactly. However, because of an incorrect casing in IIS 6 Metabase for AppRoot (or Starting Point in IIS UI) bowser doesn't send Form cookie to the server whenever URL is previously resolved on the server and sent to client in incorrect case.

Example:
App URL = "https://Test.net/Application1"
Cookie path = /Application1
Metabase AppRoot = /LM/W3SVC/1393818691/ROOT/APPLICATIONPATH1
Resolved URL = "https://Test.net/APPLICATIONPATH1"

Now to the root cause...
We create virtual directories on test server manually in a specific case (matches Path for each application). We then export virtual directory using UI to an XML file, which is then imported to another server (let's say production), at which point IIS decides to uppercase AppRoot element of the metabase.

Can anyone shed some light on this? Is there a setting on IIS I am not aware of? I am trying to avoid manual edit of metabase after the import. Is that a bug?

+1  A: 

Have you tried setting up your IIS site using the SDC tasks library for MSBuild instead?

CodePlex Site

It's simple to use and allows you to make your deployment fully automated.

Otherwise a quick fix would be to manually edit the Metabase.xml:

WINDOWS\system32\inetsrv\Metabase.xml

I have experienced this problem before and found no way around it when importing the xml.

el_tone