如何解决“/'应用程序中的服务器错误”错误?

时间:2009-06-30 11:32:44

标签: asp.net

我正在尝试在服务器中部署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

是什么原因以及如何解决?

请帮忙


10 个答案:

答案 0 :(得分:16)

尝试浏览asp.net应用程序时可能会出现此错误。

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

但是,此错误主要发生在2个方案中。

  1. 使用visual studio.net创建新的Web应用程序时,它会自动创建虚拟目录并将其配置为应用程序。但是,如果您手动创建虚拟目录并且未将其配置为应用程序,则您将无法浏览该应用程序并可能会收到上述错误。您如上所述获得的调试信息适用于此方案。
  2. 要解决此问题,请右键单击虚拟目录 - 选择属性,然后单击 “应用程序”标签和文本框旁边的“创建”。它将使用虚拟目录的名称自动创建“应用程序”。现在可以访问该应用程序。

    1. 当您的应用程序中有子目录时,您可以拥有子目录的web.config文件。但是,有些属性无法在子目录的web.config中设置,例如身份验证,会话状态(您可能会看到错误消息显示在web.config中声明身份验证或会话状态的行号)子目录)。原因是,除非子目录也配置为应用程序(如上所述),否则不能在子目录级别覆盖这些设置。
    2. 如果我们想要保护对子目录文件的访问(例如,目录是admin并且我们希望保护管理页面不受非理想用户),我们通常会在子目录中添加web.config。

答案 1 :(得分:5)

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

有关详细信息,请参阅aspnet_regiis.exe

答案 2 :(得分:5)

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

答案 3 :(得分:3)

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

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

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

答案 7 :(得分:0)

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

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

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

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

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

我有一个引用此Entity Framework DB项目的网站项目。但是它的web.config没有对连接字符串的更新...那就是我开始在这里讨论编译错误的时候。

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

答案 8 :(得分:0)

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 :(得分:0)

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