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

当前回答

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

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

其他回答

请将<staticContent />行从web.config中删除。

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

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

它的工作原理!

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

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

如果您是第一次在那台计算机上运行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替换为适当的文件夹名。

希望这能有所帮助。

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

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

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