我有一个简单的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" />

当前回答

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

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

其他回答

我也遇到了同样的问题,但在与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”

这对我很管用。

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

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

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

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

它的工作原理!

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