【问题标题】:How to resolve "Server Error in '/' Application" error?如何解决“'/'应用程序中的服务器错误”错误?
【发布时间】:2010-11-06 23:37:57
【问题描述】:

我正在尝试在我们的服务器中部署一个 asp.net 应用程序,但收到以下错误。

Server Error in '/' Application. 
________________________________________
Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.
Source Error: 
Line 63:             ASP.NET to identify an incoming user. 
Line 64:         -->
Line 65:                  <authentication  mode="Windows"/>
Line 66:                  <!--<forms loginUrl="~/SCR.UI/Login1.aspx"/>
Line 67:                  </authentication>-->
Source File: D:\BarclaysPayamentManagementSystem\scr.ui\web.config    Line: 65

是什么原因,如何解决?

请帮忙


【问题讨论】:

标签: asp.net


【解决方案1】:

您在尝试浏览 ASP.NET 应用程序时可能会收到此错误。

调试信息显示“此错误可能是由于虚拟目录未配置为 IIS 中的应用程序造成的。”

但是,此错误主要发生在两种情况下。

  1. 当您使用 Visual Studio .NET 创建新的 Web 应用程序时,它会自动创建虚拟目录并将其配置为应用程序。但是,如果您手动创建虚拟目录且未将其配置为应用程序,则您将无法浏览该应用程序并可能会出现上述错误。上面提到的你得到的调试信息,适用于这个场景。

要解决它,请右键单击虚拟目录 - 选择属性,然后单击 “应用程序”标签和文本框旁边的“创建”。它将使用虚拟目录的名称自动创建“应用程序”。现在可以访问应用程序了。

  1. 当您的应用程序中有子目录时,您可以为子目录创建 web.config 文件。但是,在子目录的web.config 中无法设置某些属性,例如身份验证、会话状态(您可能会看到错误消息显示了在 web.xml 中声明身份验证或会话状态的行号。子目录的配置)。原因是,这些设置不能在子目录级别被覆盖,除非子目录也被配置为应用程序(如上点所述)。

如果我们想保护对子目录文件的访问(例如,目录是 admin 并且我们希望保护 admin 页面免受未经授权的用户的访问),我们通常会在子目录中添加 web.config .

【讨论】:

  • 请注意,@Moayad Mardini 提供了您从中复制答案的链接 - 至少通过投票支持该人的答案来给他功劳......
【解决方案2】:

当 .NET 版本错误时,我遇到了这个错误 - 请确保该站点已配置为您需要的站点。

详情请见aspnet_regiis.exe

【讨论】:

    【解决方案3】:

    我在 VS 2015 中遇到了这个错误,在我的情况下,转到项目属性页面,Web 选项卡,然后单击服务器部分中的 Create Virtual Directory 按钮解决了它

    【讨论】:

      【解决方案4】:

      听起来管理员已经锁定了 web.config 的“身份验证”节点,在全局 web.config 中可以很容易地做到这一点。或者,简而言之,这是按设计工作的。

      【讨论】:

        【解决方案5】:

        我刚刚在 Visual Studio 2012 上遇到了同样的问题。对于一个互联网应用程序项目。 如何解决“'/'应用程序中的服务器错误”错误?

        寻找答案我遇到了这篇文章,但这些答案都没有帮助我。 比我在 stackoverflow 上找到的另一篇文章有​​解决这个问题的答案。 Specified argument was out of the range of valid values. Parameter name: site

        【讨论】:

          【解决方案6】:

          当您使用 Visual Studio.net 创建新的 Web 应用程序时,它会自动创建虚拟目录并将其配置为应用程序。但是,如果您手动创建虚拟目录且未将其配置为应用程序,则您将无法浏览该应用程序并可能会出现上述错误。

          【讨论】:

            【解决方案7】:

            当我将实体框架 edmx 文件移动到“模型”子文件夹中时,我也遇到了这个错误。这会自动更改我的 app.config 中连接字符串设置中的元数据。

            所以在连接字符串改变之前......它看起来像这样:

            <connectionStrings>
                <add name="MyDbEntities" connectionString="metadata=res://*/MyDb.csdl|res://*/MyDb.ssdl|res://*/MyDb.msl; ...
            </connectionStrings>
            

            之后......它添加了“Models”子文件夹名称(顺便说一句......它还在生成的 EF 类的命名空间中添加了“Models”),连接字符串现在看起来像这样:

            <connectionStrings>
                <add name="MyDbEntities" connectionString="metadata=res://*/Models.MyDb.csdl|res://*/Models.MyDb.ssdl|res://*/Models.MyDb.msl; ...
            </connectionStrings>
            

            我有一个引用此实体框架数据库项目的网站项目。但是它的 web.config 没有对连接字符串的更新……那是我开始得到这里讨论的编译错误的时候。

            为了修复这个错误,我更新了网站项目中 web.config 中的连接字符串,以匹配我的 EntityFramework 项目中的 app.config。

            【讨论】:

              【解决方案8】:

              vs2017 刚刚将这些行添加到 csproj.user 文件中

                  <IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
                  <IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>
                  <IISExpressUseClassicPipelineMode>false</IISExpressUseClassicPipelineMode>
              
              with these lines in Web.config
              

              <compilation debug="true" targetFramework="4.5" />
              <httpRuntime targetFramework="4.5" maxRequestLength="1048576" />
              <identity impersonate="false" />
              <authentication mode="Windows" />
              <authorization>
                <allow users="yourNTusername" />
                <deny users="?" />
              </authorization>
              

              成功了

              【讨论】:

                【解决方案9】:

                我打开了相关网站项目的“属性”窗口,并将 Windows 身份验证更改为“已启用”,这解决了我在 VS 2019 中的问题。

                【讨论】:

                  【解决方案10】:

                  错误消息非常清楚:您的 Web 应用程序的子文件夹中的 web.config 文件中有一个配置元素,该配置元素在该级别是不允许的 - 或者您忘记将 Web 应用程序配置为 IIS 应用程序。

                  示例:您尝试覆盖应用程序级别设置,例如应用程序子文件夹中 web.config 中的表单身份验证参数

                  【讨论】:

                  • 错误信息很清楚。你到底是如何从“/'应用程序中的服务器错误”中获得等同于 web.config 中的问题的?不管这是否是问题所在,您打开评论都是虚伪的。
                  • 请详细说明。
                  猜你喜欢
                  • 1970-01-01
                  • 2014-03-04
                  • 2012-03-26
                  • 1970-01-01
                  • 2012-07-20
                  • 2013-05-17
                  • 2017-09-18
                  • 1970-01-01
                  • 2015-10-09
                  相关资源
                  最近更新 更多