我正在尝试在服务器中部署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
是什么原因以及如何解决?
请帮忙
答案 0 :(得分:16)
尝试浏览asp.net应用程序时可能会出现此错误。
调试信息显示“此错误可能是由于虚拟目录未在IIS中配置为应用程序而引起的。”
但是,此错误主要发生在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中的问题。