我正在将运行经典 asp 网站的服务器从 iis5 升级到 iis7
在旧服务器上,设置了在默认文档中传递查询字符串的站点。
例如 CreateConnection.asp?CompanyID=1
(即,不同的域名都指向同一个文件夹,并且默认文档在查询字符串中传递公司。)
IIS 7 说在指定默认文档时不能有查询字符串。
我该怎么做才能解决这个问题?现有的经典 asp 站点使用此方法工作。
编辑
我见过一些网站建议直接在 web.config 文件中设置默认文档(然后允许我指定查询字符串),但我对此有以下疑问:
我将有许多指向同一位置的虚拟目录,那么每个虚拟目录是否会有一个 web.config 文件?如果是,那么这些文件将位于何处?
编辑2
根据斯科特的回答,我在这里找到了一篇好文章: 了解 iis7 配置委派
编辑3
对于指向网络服务器上的单个物理文件夹的多个站点(即多租户应用程序),我遇到了很多困难。
如果这就是您所追求的,请参阅以下相关问题:在 web.config 中为多个路径值设置默认网站
答案1
你是对的,在默认文档中包含查询字符串的功能在 IIS6 中是存在的,但在 IIS7 中不再存在。
我的建议是,如果默认文档尚未设置,则使用 URL 重写将查询字符串附加到默认文档,或者在 CreateConnection.asp 的代码中,使用逻辑来处理默认文档。这样做的好处是,有人可以访问 yoursite.com/CreateConnection.asp,并且它会起作用,无论是默认文档还是直接链接。我怀疑某些搜索引擎链接也会链接到没有查询字符串的 CreateConnection.asp。