我目前正在尝试将一些网站从 IIS6 迁移到 IIS7,但遇到了问题。
大多数情况下,我的网站都是用 Classic ASP 编写的。但是,在一个网站中,我有两个运行 asp.net 的 Web 应用程序。像这样的东西
www.mywebsite1.com - Classic ASP
www.mywebsite2.com - Classic ASP
www.mywebsite2.com/MyAspDotNetApplication1 - ASP.NET 4.0
www.mywebsite2.com/SubDirectory/MyAspDotNetApplication2 - ASP.NET 4.0
www.mywebsite3.com - Classic ASP
...
当我浏览托管经典 ASP 页面的站点时,我没有任何问题。如果我访问其中一个 ASP.NET Web 应用程序,一切正常。如果我然后访问第二个 ASP.NET Web 应用程序,事情开始出错,我会在 ASP.NET 应用程序页面上遇到错误,如下所示
由于已达到网络 BIOS 命令限制,无法开始监视对“\FileServer1\web\mywebsite2\MyAspDotNetApplication1\App_Browsers”的更改。有关此错误的更多信息,请参阅 Microsoft 知识库文章 810886。Windows XP 平台不支持在 UNC 共享上托管。`
当我尝试访问经典 ASP 网页时,出现以下错误
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid
Module IIS Web Core
Notification BeginRequest
Handler Not yet determined
Config Error
Config File
Requested URL http://www.mywebsite2.com:80/myvirtualdirectory1/
Physical Path \\FileServer1\web\mywebsite2\myvirtualdirectory1\
Logon Method Not yet determined
Logon User Not yet determined
当我打开 IIS 管理器并查看发生错误的站点或虚拟目录之一时,我收到以下错误
Filename: \\?\FileServer1\mywebsite2\web.config
Error: Cannot read configuration file
我遇到的问题与其他问题类似,但我已从所有站点(不包括 ASP.NET 应用程序)中删除了所有 Web.config 文件,但仍然出现错误。
这在 IIS6 上运行良好。
有任何想法吗?
设置
硬件
- 运行 Windows Server 2008 的两台 Web 服务器(Web1 和 Web2)
- 一台运行 Windows 2003 的文件服务器 (FileServer1)(不知道这是否有所不同)
IIS
- 10 个在自己的应用程序池中运行的经典 ASP 网站。这些网站都有很多虚拟目录指向文件服务器上的位置
- 20 个网站仅重定向到上述 10 个网站之一
- 2 个位于经典 ASP 站点之一内的 ASP.NET 应用程序
- 每个经典 ASP 站点都有自己的应用程序池,在自定义用户帐户下运行
MYDOMAIN\MyIISUser
- ASP.NET 应用程序也有自己的应用程序池,并配置为在自定义用户帐户 MYDOMAIN\MyIISUser 下运行
- 20 个重定向网站在单个应用程序池下运行。
- 这些网站设置为使用共享配置。配置文件本地存储在每个 Web 服务器上,并使用 DFS 进行同步(我尝试将其放在 FileServer1 上,但遇到了与上述相同的问题,将其移动到 Web 服务器本地文件系统解决了问题 -这可能很重要?)。
文件服务器
- 所有网页内容都存储在文件服务器上
C:\Web
。这被设置为 UNC 驱动器,可通过地址从网络访问\\FileServer1\Web
- 我已将权限设置为允许
C:\Web
对MYDOMAIN\MyIISUser
- 有人告诉我,Web 内容必须存储在网络驱动器上,而不是拥有本地副本并使用 DFS