4

我一直在尝试从我的计算机访问我合作伙伴的 Web 应用程序,但这个问题不断出现。我试图将 Web 应用程序转换为 IIS 中的应用程序,但问题仍然存在。

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

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

源错误:

Line 17:                <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 18:                <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>
Line 19:        <authentication mode="Forms">
Line 20:            <forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
Line 21:        </authentication>

源文件:C:\inetpub\wwwroot\fas\fas\web.config 行:19

显示其他配置错误:

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。(C:\inetpub\wwwroot\fas\fas\web.config 第 22 行)在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。(C:\inetpub\wwwroot\fas\fas\web.config 第 28 行)在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。(C:\inetpub\wwwroot\fas\fas\web.config 第 34 行)

4

3 回答 3

5

出现问题是因为您在应用程序的子目录中有另一个 web.config 文件,并且它具有该authentication元素。该authentication元素只能出现在根 web.config 中。请参阅此处的元素文档。在元素信息部分下,可配置的位置Machine.config、根级 Web.config、应用程序级 Web.config

要解决此问题,您必须执行以下任一操作:

  • 删除子 web.config,只留下根目录中的那个。
  • 或者,如果子 web.config 对您的应用程序至关重要,请从中删除整个authentication元素。您authentication只能在根级别 web.config 中配置一次。
于 2013-05-22T04:24:51.653 回答
1

您的 web.config 不正确。

你有这样的事情:

<configuration>
    <system.web>
        <compilation>
            <assemblies>
               <add assembly="System.Design, ..."/>
               <!-- many  more -->
               <add assembly="System.Design, ..."/>
        <authentication mode="Forms">
            <forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
        </authentication>

你需要一些结束标签:

            <assemblies>
               <add assembly="System.Design, ..."/>
               <!-- many  more -->
               <add assembly="System.Design, ..."/>
            </assemblies> <!-- You need this -->
        </compilation>    <!-- and this -->
        <authentication mode="Forms">
            <forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
        </authentication>
于 2013-05-22T03:53:07.697 回答
0

就我而言,这是 Owin 的错误配置

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);

必须移动到Startup.Configuration在此配置之后发生 Owin 的 Autofac 配置的位置。

于 2018-03-05T12:55:16.330 回答