我有两个网站 ASP Classic - www.company.com 和 www.companytesting.com。
每年这个时候,company.com 都会指向一个名为 website2012 的文件夹,而 companytesting.com 则会指向一个名为 website2013 的文件夹。这两个文件夹的内容几乎完全相同,只是根据季节变化做了一些小改动(我本来应该今天做这个的 - 哈哈)。
直到几周前,我还在运行 Windows Server 2003。为了更新“实时”网站,我会复制测试站点文件夹,并将其重命名为 website2013R1,并将测试站点指向那里,然后将实时站点指向 website2012。
我们现在拥有 Windows Server 2008 R2 64。(我请别人帮我将网站迁移到新服务器。)
当我将 companytesting.com 网站指向 website2013R1 时,该网站运行正常。
当我将 company.com 网站指向 website2013(对于 companytesting.com 网站,它之前一直有效)时,显示的是一个空白页。(即查看源代码 = 没有任何内容。)发生这种情况时,失败的请求日志中没有任何内容。
我可以使用 IIS7.5 中的“浏览”按钮/链接(右上角)并查看那里的所有文件。如果我使用浏览按钮(无论是一般情况下还是在 index.asp 页面上),我都会再次看到空白页。
这些设置的一个奇怪之处是 companytesting.com 使用登录名(我认为这是 Windows 身份验证 - 它只是员工的单一用户名和密码,并防止 GoogleBots 使用)。显然,company.com 没有。但将重定向到 website2013r1 会保留登录名。(所以我不太清楚它是附加到文件夹还是附加到网站。更改路径后访问 company.com 网站不会产生密码请求。)
文件夹上的权限似乎都相同,但显然我遗漏了一些东西。
为什么更改物理路径不起作用?
显而易见,我对服务器不太了解。2003 年我做得还不错,但由于这不是我的主要任务,而且我现在很忙,所以我几乎没有看过 2008 年。所以当你让我检查某件事时,我可能会问一些非常愚蠢的问题。
答案1
问题在于 Win Server 2003 和 Win Server 2008 处理受密码保护的测试站点的方式不同,或者至少是我聘请的顾问设置密码的方式不同。
问题在于,web.config
website2012 和 website2013 文件夹中的文件有所不同。web.config 文件中限制了对开发网站的访问,并包含以下行:
<remove users="*" roles="" verbs="" />
由于实时网站没有附加用户名/密码,因此它没有显示用户名密码框,只是给了我一个空白页。
我将web.config
“旧”网站中的文件放入 website2013 文件中,问题就解决了。