cookies - 从文件导入虚拟目录时,IIS 6 强制 AppRoot/Starting Point 为大写

标签 cookies iis-6 forms-authentication metabase

我在网上搜索了此内容,但找不到任何内容(以及一篇远程相关的帖子),所以我在这里。

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

示例:
应用网址 = "https://Test.net/Application1 "
Cookie 路径 =/Application1
元数据库应用程序根 =/LM/W3SVC/1393818691/ROOT/APPLICATIONPATH1
已解析的网址 = "https://Test.net/APPLICATIONPATH1 "

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

有人能解释一下吗? IIS 上是否有我不知道的设置?我试图避免导入后手动编辑元数据库。这是一个错误吗?

最佳答案

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

CodePlex Site

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

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

WINDOWS\system32\inetsrv\Metabase.xml

我以前遇到过这个问题,但在导入 xml 时没有找到解决办法。

关于cookies - 从文件导入虚拟目录时,IIS 6 强制 AppRoot/Starting Point 为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2632468/

相关文章:

api - 第三方Cookie-具有/ session 跟踪的跨域API

java - 如何从 Java 远程启动/停止 IIS 6.0 中的应用程序池

iis-6 - 如何让 .NET 4.5 网站在 IIS6 上运行?

asp.net-mvc-3 - 无法通过长轮询为 20 多个连接 MVC3 IIS6 提供服务

asp.net - ADFS 2.0 身份验证的 Web 服务调用

asp.net - 是为他们转换现有的用户帐户还是让用户重新注册更好?

javascript - 检索 cookie 以设置背景图像

python - 如何在 BaseHttpServer 中设置多个 cookie?

ASP.NET session Cookie - 指定基域

c# - OWIN Cookie 与 FormsAuthentication