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

当前回答

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

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

单击OK。

其他回答

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

这对我很管用。

检查IIS服务器是否安装了URL重写功能。 如果没有安装,请确保您的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问题。

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

打开IIS管理器 在Connections窗格中选择服务器 在主窗格中打开Configuration Editor 在Sections下拉菜单中,选择要解锁的section,例如system。webServer > defaultPath 在右侧窗格中单击“解锁属性” 重复其他需要解锁的设置 重新启动IIS(可选)-在“连接”窗格中选择服务器,在“操作”窗格中单击“重新启动”

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

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

希望这能有所帮助。