IIS虚拟目录/应用程序名称,大写

在IIS中我有一个.Net应用程序的网站,可以这样访问:

http://site1.example.com/myapp

该网站需要身份validation,所以当我访问它时,它按照预期redirect到http://site1.example.com/myapp/login.asx

我导出了configuration,然后使用该文件在同一台服务器下创build一个新的站点。 现在,当我访问http://site2.example.com/myapp上的新网站时,它将redirect到http://site2.example.com/ MYAPP /login.aspx。 请注意应用程序名称的大写字母。

在我导入xmlconfiguration文件之前,我编辑了它来为应用程序设置不同的根目录(在这里我放置了现有的一个副本),所以这不是问题。

当我查看MetaBase.xml时,新创build的站点中的虚拟目录的AppRoot被设置为/ LM / W3SVC / 1584782141 / Root / MYAPP ,而在导出的xml文件中,以及在Metabase.xml中,原来的虚拟目录是小写的,因为它应该是。

我编辑了MetaBase.xml(在IIS中允许在线编辑元数据库)并保存它。 根本没有改变。 我重新加载了元数据库,更正的地方,但它不工作 – 它总是redirect到URL的大写版本。

这只有在redirect到login.aspx时才会发生。 如果我直接点击login页面 – 即我在浏览器中键入url,它保持我键入它。

另外,如果我打到目录中的“不受保护的”页面,它会保持原样。

任何想法,我可以看看解决这个问题?

我已经find了与IIS 6完全相同的问题。我在networking上的其他地方发现了这个问题的一些引用; 我不认为有太多人遇到这个bug。 解决方法是直接编辑元数据库,然后编辑它以更改AppRoot以具有正确的大小写。

哪一个,你说你已经完成了。 它总是为我工作; 这就是我们在环境中部署新客户的方式。 尝试回收应用程序池,并确保在浏览器中刷新caching和Cookie。

我同意mfinni的评论。 你做了什么应该工作。 它只会在发生redirect时发生,所以如果你直接点击一个URL,它就不会发生,但是当ASP.NET做一个redirect到login页面的时候它就会发生。

我的build议是search其他的元数据库的其他参考。 你可能已经抓住了其中的一个。 然后做一个应用程序池回收(iisreset作为最后的手段)。 只要确认configuration数据库中不存在大写的MYAPP,应该在应用程序池回收之后再设置。