IIS 10 和 Visual Studio 2017 中的 HTTP 错误 500.19

HTTP Error 500.19 in IIS 10 and Visual Studio 2017

我知道有人问过类似的问题,但他们的回答并没有解决我的问题。

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration data for the page is invalid.
Detailed Error Information: Module IIS Web Core Notification BeginRequest Handler Not yet determined Error Code 0x80070021 Config Error This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".

配置文件\?\C:\mySite\web.config

请求URLhttp://localhost:80/mySite/login

物理路径 C:\mySite\login

登录方法尚未确定

登录用户尚未确定

配置来源:

65: </staticContent>

66: <handlers>

67:

<add name="ReportViewerWebControlHandler"
    > preCondition="integratedMode" verb="*"
    > path="Reserved.ReportViewerWebControl.axd"
    > type="Microsoft.Reporting.WebForms.HttpHandler,
    > Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
    > PublicKeyToken=b03f5f7f11d50a3a" />

我也检查了 Windows 功能,它们看起来不错。

我尝试将 overrideModelDefault 设置为 Allow 并从 applicationhost.congif 中删除 WebServiceHandlerFactory 但没有结果。

我正在使用 Visual Studio 2017 和 IIS 10。

还有其他解决方法吗?

  1. Win键+R打开运行Window
  2. 在运行Window中输入“OptionalFeatures.exe”
  3. 在功能window中,点击:“Internet信息服务”
  4. 单击:“万维网服务”
  5. 点击:“应用程序开发功能”
  6. 检查功能。

我正在使用 Windows 10

Note: "You must be signed in as an administrator to be able to turn Windows features on or off." If Windows Features is empty or blank, then double-check to make sure that the Windows Modules Installer service is enabled and set to Automatic.

更新:

确保 .NET Core Windows Server Hosting bundle 已安装

其他可能的解决方案:

解决方案 1:

运行 来自提升的命令提示符的这两个命令

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config -section:windowsAuthentication

解决方案 2:使用 PowerShell

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-47-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature

解决方案 3:删除 web.config

中的 <rewrite> 标签
<system.webServer>
    ...
    <rewrite>
    ...
    </rewrite>
</system.webServer>

It's no problem in web.config file.

After installation windows, 
IIS does not know how to support .NET Core 2.0 website (or Core 1.0 also) by default

您必须在主机系统上安装 .NET Core Windows Server Hosting bundle

对我来说,问题是 web.config 中的重定向规则。

通过删除 web.config 中的整个 <rewrite> 标签解决:

<system.webServer>
...
...
<rewrite>
      <rules>
        <rule name="http to https" enabled="true" stopProcessing="true">
          <match url="(.*)"/>
          <conditions>
            <add input="{HTTPS}" pattern="^OFF$"/>
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" appendQueryString="true"/>
        </rule>
      </rules>
    </rewrite>
 </system.webServer>

我遇到了这个问题。对我来说,将连接字符串放在包含 entityframework 部分的 configSections 之后,解决了这个问题。

在安装 .NET Core 托管捆绑包后尝试 运行 常规 asp.net 应用程序时,我收到了类似的错误消息 -> https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-2.2

将我的 C:\Windows\System32\inetsrv\Config\applicationHost.config 与同事的版本进行比较,我们发现缺少一些部分组:

就我而言 (VS 2019),我只是更改了项目 属性 / Web / Project URL

中的端口

然后我按下了按钮 "Create Virtual Directory"

之前 http://localhost:40430/XX

之后 http://localhost:1438/XX

我用错了框架。我在项目属性中选择了 .NET 3.5。将其更改为 .NET 4 后,问题就消失了。 .NET 4 是我的 IIS 10 版本中唯一可以选择的框架。

这可能是 Web.config 文件共享问题。 检查 wwwroot 文件夹是否共享,同时检查 里面包含 publish/build 的文件夹。

当我从 VisualStudio 在 IIS Express 中启动调试 ASP.NET 项目时,我突然开始遇到这个错误。在(重新)检查文件 .vs\config\applicationhost.config 时,我注意到以下可疑行:

<virtualDirectory path="/" physicalPath="C:\Users\me\OneDrive\Documents\My Web Sites\project.Web-Site2" />

我永远不会有意识地将 OneDrive 用于与开发相关的任何事情。但我们的 IT 正在整个组织范围内采用 OneDrive。所以他们可能更改了我的配置文件的一些设置,导致 VisualStudio 使用该路径更新 IIS Express 配置。并且那里不存在“我的网站”目录。所以在我更新了如下行之后:

<virtualDirectory path="/" physicalPath="C:\inetpub\www" />

并创建了空目录 C:\inetpub\www,一切又开始工作了。

希望这个故事可以节省一些浪费的故障排除时间。