HTTP错误500.19,错误代码:0x80070021

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

HTTP错误500.19 -内部服务器错误 访问,因为该页的相关配置数据为 无效的。< / p >

详细错误信息:

模块 IIS Web核心

通知 BeginRequest

处理程序尚未确定

错误代码 0 x80070021

配置错误此配置部分不能在此路径下使用。当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" />
420001 次浏览

你的网络。config描述了你正在使用表单验证 -确保你在IIS的身份验证菜单下启用了表单身份验证和禁用匿名身份验证,对于在IIS中运行的网站。

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

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

  • 进入服务器管理器,单击添加角色和功能
  • 在角色部分选择:Web Server
    • 在安全子部分选择一切(我排除了摘要,IP限制和URL授权,因为我们不使用它们)
    • 在应用程序开发中选择。net可扩展性4.5,ASP。NET 4.5和两个ISAPI条目
    • 李< / ul > < / >
    • 在特性部分选择:NET 3.5, .NET 4.5, ASP。NET 4.5
    • 在web服务器部分选择:web服务器(全部),管理工具(IIS管理控制台和管理服务),Windows身份验证-如果您正在使用其中任何一个

正如错误所指出的那样-“当段被锁定在父级时发生这种情况”。要解锁该部分,您可以使用appcmd.exe并执行以下命令:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost

有关节锁定和父配置上下文的更多信息,请参阅IIS的文档

如果您是第一次在那台计算机上运行IIS,您应该尝试运行ASP。NET IIS注册工具(aspnet_regiis.exe)。

以下是如何做到这一点: 如果您使用的是。net framework v4,以管理员身份打开命令提示符,并使用

将目录更改为.net framework基本文件夹
CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

或者,如果你使用的是64位计算机,使用:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

当您成功导航到适当的目录时,执行ASP。NET IIS注册工具使用:

aspnet_regiis -i

如果您使用的是不同的. net框架版本,只需将v4.0.30319替换为适当的文件夹名。

希望这能有所帮助。

<staticContent />行,并从web.config删除它。

尝试在服务器级别解锁相关的IIS(7.5)配置设置,如下所示:

  1. 打开IIS管理器
  2. 连接窗格中的选择服务器
  3. 在主窗格中打开配置编辑器
  4. 在Sections下拉菜单中,选择要解锁的section,例如系统。webServer > defaultPath
  5. 在右侧窗格中单击打开属性
  6. 重复其他需要解锁的设置
  7. 重新启动IIS(可选)-在“连接”窗格中选择服务器,在“操作”窗格中单击“重新启动”
我也遇到了同样的问题,但在与IIS和谷歌头脑风暴了好几个小时后。我找到解决办法了。 此错误是因为在iis__abc0中禁用了某些设置

以下是解决方案的步骤:

  1. 转到C:\Windows\System32\inetsrv\config\applicationHost.config并在记事本中打开
  2. 修改中出现的以下键值

    • <section name="handlers" overrideModeDefault="Deny" />将此值从“Deny”更改为“Allow”

    • <李> < p > <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> 将这个值从Deny改为Allow

      李< / ul > < / >

这对我很管用。

在Windows 8.1和iis8.5上,我的解决方案是从控制面板注册4.5:

程序和功能>打开或关闭Windows功能>信息信息服务>万维网服务>应用程序开发功能>选择ASP。NET 4.5

单击OK。

我在试图在一个空ASP中托管WCF服务时得到这个错误。网络应用程序。整个解决方案使用。net 4.5平台,IIS 8.5运行在Windows 8.1上。 答案是

  1. 打开或关闭“Windows功能”;

  2. 进入ASP下的WCF部分。NET 4.5高级服务

  3. 检查HTTP激活。

  4. 您将被要求重新启动系统。

    截图

这应该修复HTTP 500.19!

编辑11 - 2月- 2016刚刚在Windows 10 Pro上得到了一个问题,iis10,这一次,它是HTTP 404.0。修复仍然是相同的,打开“HTTP激活”;在Windows功能下->.NET Framework 4.6高级服务->WCF服务->HTTP激活

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

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

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

This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see 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

我通过以下方法解决了这个问题:

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters

enter image description here

这很有效,还节省了我的时间。试试看HTTP错误500.19 -内部服务器错误0x80070021 (IIS 8.5)

在我们的例子中,我们为这个错误挣扎了好几天。原来,在控制面板,程序,打开或关闭窗口的功能。

我们选择了Internet信息服务、万维网服务、应用程序开发特性,并在这些特性中检查了与我们的开发环境相关的特性集。例如:ASP。NET 4.6. NET可扩展性4.6等。

它的工作原理!

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

对我来说有效的解决方案是删除我当前的网页。配置并添加一个新的。这为我解决了问题

检查IIS服务器是否安装了URL重写功能。< br > 如果没有安装,请确保您的web。配置文件没有URL重写相关配置

<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
<rules>
<rule name="Fail bad requests">
<match url=".*"/> ...

有时我们从旧服务器复制配置,然后直接部署到全新的服务器,然后我们可能会遇到这样的500问题。

如果是windows 10,则以admin身份打开powershell并执行以下命令:

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

在Windows 8.1或10上包括。net框架4.5或以上,如下所示

enter image description here

在win2016中将IIS7迁移到iis10时,我得到了错误码0x80070021。 下面的步骤帮助我修复它。 < / p >

手动更改值从"Deny"“;Allow"以下设置在

%windir%\system32\inetsrv\config\ applicationHost.config

section:system.webServer

<section name="handlers" overrideModeDefault="Deny" />

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