我有一个简单的webAPI构建Visual Studio 2013。当我从VS13运行它时,它工作得很好,但当我在本地IIS中复制项目时,它给了我以下错误。

HTTP错误500.19 -内部服务器错误不能被请求的页面 访问,因为该页的相关配置数据为 无效的。

详细错误信息:

模块IIS Web核心

通知BeginRequest

处理人尚未确定

错误码0x80070021

配置错误该配置项不能在该路径下使用。当section被锁定在父级时,就会发生这种情况。锁定是默认的(overrideModeDefault="Deny"),或者由overrideMode="Deny"或遗留的allowOverride="false"的位置标记显式设置。

配置文件\?\C:\inetpub\wwwroot\APITeslin\web.config

配置来源:

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

当前回答

在我的情况下,有IIS URL重写模块的规则,但我没有安装该模块。你应该检查你的网络。配置,如果有任何模块包括但没有安装。

其他回答

我也遇到了同样的问题,但在与IIS和谷歌头脑风暴了好几个小时后。我找到解决办法了。 此错误是因为在IIS applicationHost.config中禁用了某些设置。

以下是解决方案的步骤:

打开C:\Windows\System32\inetsrv\config\applicationHost。配置并在记事本打开 中显示的下列键值 <section name="handlers" overrideModeDefault="Deny" />将此值从"Deny"更改为"Allow" <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> 将此值从“Deny”更改为“Allow”

这对我很管用。

该路径下不能使用该配置段。当section被锁定在父级时,就会发生这种情况。默认情况下锁定(overrideModeDefault= " Deny ")

你好男人

旧的IIS和服务器

当我们想要在新的Microsoft Windows Server 2016上构建的iis10上运行应用程序时,可能会遇到以下错误。

HTTP错误500.19 -内部服务器错误

无法访问请求的页面,因为该页的相关配置数据无效。

该路径下不能使用该配置段。当section被锁定在父级时,就会发生这种情况。锁定是默认的(overrideModeDefault= " Deny "),或者由overrideMode= " Deny "或遗留的allowOverride= " false的位置标记显式设置 解决办法很简单。

在您的计算机上按照C:\Windows\System32\inetsrv\config文件路径操作。将applicationHost配置文件中的overrideModeDefault= " Deny "部分更改为" Allow "。然后,当您重新启动IIS时,问题将得到解决。

今天在Windows 2016核心服务器上,我通过确保GIOESCOM提到的组件安装来解决这个问题,然后我修复了我的情况下的SDK,用于. net Core 3.1, . net 5和. net 6,解决了这个问题。NET 4.7.2 MVC web应用程序工作。

得到了完全相同的错误,然后得到了这个问题。正如@SpaceBison在评论中提到的,这个答案描述了解决方案- https://stackoverflow.com/a/12867753/404099。我发现得太晚了,它漏了几步。这对我来说很管用:

Windows Server 2012, IIS 8.5。应该也适用于其他版本。

Go to server manager, click add roles and features In the roles section choose: Web Server Under Security sub-section choose everything (I excluded digest, IP restrictions and URL authorization as we don't use them) Under Application Development choose .NET Extensibility 4.5, ASP.NET 4.5 and both ISAPI entries In the features section choose: NET 3.5, .NET 4.5, ASP.NET 4.5 In the web server section choose: Web Server (all), Management Tools (IIS Management Console and Management Service), Windows Authentication - if you are using any of it

我们正在使用亚马逊网络服务,所以我们希望使用脚本和程序来解决这个问题。所以我一直在寻找一个命令行工具。所以首先我尝试了跑步的技巧

c:\Windows\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -我

但因为我运行的是基于云的Windows Server 2012,它就会抱怨

此版本的操作系统不支持此选项。管理员应该安装/卸载ASP。使用“打开/关闭Windows功能”对话框,服务器管理器管理工具或dism.exe命令行工具。详情请见http://go.microsoft.com/fwlink/?LinkID=216771。

我谷歌了一下,找到了微软官方支持页面KB2736284。有一个命令行工具dism.exe。所以我尝试了以下方法

dism /online /enable-feature /featurename:IIS-ASPNET45

但是它抱怨了,并给出了一个功能名称列表来尝试,所以我一个一个地尝试了它们,并在每个功能名称之后测试了我的WebAPI网页,它在列表中底部的功能名称之后工作。

dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter 
dism /online /enable-feature /featurename:IIS-ISAPIExtensions 
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45 

现在我可以浏览我的WebAPI站点并查看API信息。这应该能帮助一些人。[然而,我还没有完全脱离困境,我还不能从盒子外进入网站。还在努力中。

此外,我根据其他人的反应做了一些早期的步骤。我可以确认以下功能委托需要更改(尽管我想找到一个命令行工具)。

In Feature delegation

Change 
'Handler Mappings' from Read Only to Read/Write

Change 
'Modules' from Read Only to Read/Write

Change 
'SSL Settings' from Read Only to Read/Write