1

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

说明:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误消息:在应用程序级别之外使用注册为 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 浏览器。

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

4

2 回答 2

1

我不相信你可以定义

<authentication mode="Windows" />

在 a 中,<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>

我遇到的问题在我的开发/本地机器上

于 2012-04-20T02:01:48.467 回答
0

我建议你检查你的应用程序文件夹。

在您的应用程序根文件夹中存在应用程序的备份副本。

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

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

希望这能解决问题。

于 2012-04-20T03:38:00.263 回答