错误:超出应用程序级别。此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的

时间:2012-04-20 01:54:27

标签: asp.net

我从不再与公司合作的开发人员那里继承了这个应用程序。 在我获得最新版本并运行应用程序后,我收到以下错误:

描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。

分析程序错误消息:在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。此错误可能是由于虚拟目录未在IIS中配置为应用程序。

来源错误:

Line 170:  <location path="winLogin.aspx">
Line 171:    <system.web>
Line 172:      <authentication mode="Windows" />
Line 173:      <authorization>
Line 174:        <allow users="*" />

该错误提到了IIS,但由于这是一个VS 2005项目,我使用的是默认的Web浏览器。

有关如何解决的任何想法?

2 个答案:

答案 0 :(得分:1)

我不相信你可以定义

<authentication mode="Windows" />

<location>内部,因为这是一个应用程序级别的设置。换句话说,您不能对同一应用程序中的不同网页使用不同的身份验证模式。您需要在配置文件的主<system.web>部分中定义它。

错误消息只是指一个可能的错误来源。在<location>标记内或应用程序根目录的子文件夹中的子web.config文件中使用任何应用程序级设置也会生成此错误消息。

如果您确实需要多种身份验证方法,则可以将子文件夹创建为虚拟应用程序并在其中进行定义,例如/winLogin/Default.aspx/winLogin/web.config中的配置设置控制的页面。

更新

你确定不能吗? 我刚刚查看了此应用程序正常运行的QA网站,Web.config包含以下条目:

<location path="winLogin.aspx">
    <system.web>
      <authentication mode="Windows" /> 
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

我遇到的问题是我的开发/本地计算机

答案 1 :(得分:0)

我建议你查看你的申请文件夹。

应用程序根文件夹中有应用程序的备份副本。

或者您在应用程序中的某处有一个重复的 Web.config 文件。

您应该做的另一件事是转到 C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files 并删除与您的应用程序名称相关的所有文件夹。如果它是您的开发框,那么您可以删除此文件夹下的所有内容。

希望这能解决问题。