Cookies 当从文件导入虚拟目录时,IIS 6强制将approt/起始点改为大写

Cookies 当从文件导入虚拟目录时,IIS 6强制将approt/起始点改为大写,cookies,iis-6,forms-authentication,metabase,Cookies,Iis 6,Forms Authentication,Metabase,我已经在网上搜索过了,但是没有找到任何东西(一篇远程相关的帖子),所以我来了 在IIS 6中,我们有多个ASP.NET应用程序使用表单身份验证,每个应用程序都有专用路径。由于路径区分大小写,所以它必须完全匹配URL的路径部分。但是,由于Approt的IIS 6元数据库(或IIS UI中的起始点)中的大小写不正确,因此每当URL以前在服务器上解析并在不正确的情况下发送到客户端时,bowser不会将表单cookie发送到服务器 示例: 应用程序URL=” Cookie路径=/Application1

我已经在网上搜索过了,但是没有找到任何东西(一篇远程相关的帖子),所以我来了

在IIS 6中,我们有多个ASP.NET应用程序使用表单身份验证,每个应用程序都有专用路径。由于路径区分大小写,所以它必须完全匹配URL的路径部分。但是,由于Approt的IIS 6元数据库(或IIS UI中的起始点)中的大小写不正确,因此每当URL以前在服务器上解析并在不正确的情况下发送到客户端时,bowser不会将表单cookie发送到服务器

示例:
应用程序URL=”
Cookie路径=/Application1
元数据库批准=/LM/W3SVC/1393818691/ROOT/APPLICATIONPATH1
解析的URL=”

现在谈谈根本原因…
我们在特定情况下在测试服务器上手动创建虚拟目录(匹配每个应用程序的路径)。然后,我们使用UI将虚拟目录导出到一个XML文件,然后将该文件导入到另一台服务器(比如生产服务器),此时IIS决定使用元数据库的大写approt元素


有人能解释一下吗?是否存在我不知道的IIS设置?我试图避免在导入后手动编辑元数据库。那是虫子吗

您是否尝试过使用MSBuild的SDC任务库设置IIS站点

它使用简单,允许您完全自动化部署

否则,快速修复方法是手动编辑Metabase.xml:

WINDOWS\system32\inetsrv\Metabase.xml


我以前遇到过这个问题,在导入xml时找不到解决方法。

我找到了另一种解决方法

在应用程序属性中,我删除了应用程序,重新启动了IIS,并再次添加了应用程序。 重新启动会强制更新磁盘中的元数据库并删除错误条目。如果不重新启动,元数据库的入口仍然是大写的。 创建新应用程序后,将使用正确的大小写将其添加到元数据库中,并解决问题


可能要做的事情更多,但直接更改元数据库更安全

我没有答案要补充,但我可以确认,当从文件创建新的VirDir时,这种行为与您描述的完全一样。。。最终不得不编写额外的脚本来修复损坏的AppRoots(在我们的例子中,因为在反向代理后面,路径案例本身就很重要)。此外,使用iiscnfg.vbs通过重命名复制元数据库分支时,不会重命名Approt,通常会破坏它。这些工具看起来并不稳定。