问:
我们最近在 IIS 5 上安装了 ASP.net,并收到以下消息:
分析器错误信息:在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。导致该错误的原因可能是在 IIS 中没有将虚拟目录作为应用程序进行配置。
行 1:<configuration>
行 2:<system.web>
行 3:<authentication mode="Forms">
行 4:<forms loginUrl="LoginPage.aspx">
行 5:<credentials passwordFormat="Clear">
有人告诉我这是因为我没有将应用程序文件夹配置为 IIS 中的虚拟目录。但是,这样做并不能解决问题。我们应该如何解决这个问题呢?
安装 ASP.net 后,您可以将 web.config 文件放置在某个属于 Web 服务器的文件夹(Web 根目录、目录或虚拟目录)下,这样 ASP.net 将使用该文件来配置应用程序的各种组件和特性。处理 ASP 应用程序的 global.asa 文件的方法也与此相同。但是,为此,必须在 IIS 插件中,将该文件夹标记为“应用程序"。不过此处应用程序 一词的含义与我们通常所理解的含义不同。在此,它是指设定应用程序的起始点。换句话说,您可以将 Web 站点上的某个文件夹指定为应用程序 A(例如一个购物车应用程序)的起始点,而指定另一个文件夹作为应用程序 B(例如一个执行在线调查的应用程序)的起始点,这样它们将会有不同的 ASP(或 ASP.net)应用程序变量设置。您可以在每个预设置的应用程序起始点中放置不同的 global.asa 或 web.config 文件。
和您所听到的建议不同,这个位置并不要求必须是虚拟目录。它可以是一个普通的文件夹,甚至是 Web 站点的根目录。
下面的屏幕截图(图 1)显示了一个虚拟目录的属性。注意其中的“配置"按钮,另外,这里“应用程序名"文本框是空白的。当您单击“配置"按钮,即为通知 IIS,该目录、虚拟目录或 Web 根目录的位置是应用程序的起始点。应用程序的名称可填,也可不填,但是它对于错误诊断很有帮助,因此您应该指定一个名称。将这个文件夹配置为应用程序后,ASP.net 就会读取您在其中放置的 web.config 文件,问题也就迎刃而解。
550)this.style.width=550; if(this.height>550)this.style.width=(this.width*550)/this.height;" />
图 1:一个虚拟目录的属性