IIS 10 和 Visual Studio 2017 中的 HTTP 错误 500.19
Posted
技术标签:
【中文标题】IIS 10 和 Visual Studio 2017 中的 HTTP 错误 500.19【英文标题】:HTTP Error 500.19 in IIS 10 and Visual Studio 2017 【发布时间】:2018-01-07 00:32:31 【问题描述】:我知道有人问过类似的问题,但他们的回答并没有解决我的问题。
HTTP 错误 500.19 - 内部服务器错误
请求的页面不能 被访问,因为该页面的相关配置数据是 无效。 详细错误信息:模块 IIS Web 核心通知 BeginRequest 处理程序尚未确定错误代码 0x80070021 配置错误 此配置部分不能在此使用 小路。当该部分锁定在父级别时会发生这种情况。 默认情况下锁定 (overrideModeDefault="Deny"),或设置 通过带有 overrideMode="Deny" 的位置标记或旧版显式 允许覆盖=“假”。
配置文件\?\C:\mySite\web.config
请求的 URL http://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。
还有其他解决办法吗?
【问题讨论】:
ReportViewerWebControlHandler 需要在 machine.config 中设置 overrideModelDefault 我没有 machine.config 文件 您将在文件夹 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config 中找到它。此路径中的 Framework64 文件夹可能会根据应用程序池配置而更改,即 32 位或 64 位 我找到了你说的文件,但我没有找到你说要修改的内容:pastebin.com/pVcqSyLS 【参考方案1】:-
按Win键+R打开运行窗口
在运行窗口中,输入“OptionalFeatures.exe”
在功能窗口中,单击:“Internet 信息服务”
点击:“万维网服务”
点击:“应用程序开发功能”
检查功能。
我使用的是 Windows 10
注意:“您必须以管理员身份登录 能够打开或关闭 Windows 功能。”如果 Windows 功能是 为空或空白,然后仔细检查以确保 Windows 模块安装程序服务已启用并设置为自动。
更新:
确保已安装.NET Core Windows Server Hosting bundle
其他可能的解决方案:
解决方案一:
从提升的命令提示符运行这两个命令
%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>
【讨论】:
对 NET Core 最重要:Windows Server Hosting bundle dotnet.microsoft.com/download/dotnet-core/3.1【参考方案2】:对我来说,问题在于web.config
中的重定向规则。
通过删除web.config
中的整个<rewrite>
-tag解决:
<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>
【讨论】:
如果您需要保持应用程序正常工作的重写规则,请将模块安装到本地 IIS。 iis.net/downloads/microsoft/url-rewrite【参考方案3】:web.config 文件没有问题。
安装windows后, 默认情况下,IIS 不知道如何支持 .NET Core 2.0 网站(或 Core 1.0)
您必须在主机系统上安装.NET Core Windows Server Hosting bundle。
【讨论】:
【参考方案4】:就我而言(VS 2019),我只是更改了项目属性/Web/项目 URL 中的端口
然后我按下了“创建虚拟目录”按钮
之前 http://localhost:40430/XX
之后 http://localhost:1438/XX
【讨论】:
【参考方案5】:在从 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,一切又开始工作了。
希望这个故事可以为某人节省一些浪费的故障排除时间。
【讨论】:
【参考方案6】:我遇到了这个问题。对我来说,将连接字符串放在包含 entityframework 部分的 configSections 之后,解决了这个问题。
【讨论】:
【参考方案7】:在安装 .NET Core Hosting Bundle 后尝试运行常规 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 与同事的版本进行比较,我们发现缺少一些 sectionGroup 的:
【讨论】:
【参考方案8】:我使用了错误的框架。我在项目属性中选择了 .NET 3.5。将其更改为 .NET 4 后,问题就消失了。 .NET 4 是我的 IIS 10 版本中唯一可以选择的框架。
【讨论】:
【参考方案9】:这可能是Web.config
文件共享问题。
检查wwwroot
文件夹是否共享,并检查
包含发布/构建的文件夹。
【讨论】:
以上是关于IIS 10 和 Visual Studio 2017 中的 HTTP 错误 500.19的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 和 IIS Express 随机停止工作
Visual Studio IDE 和 IIS 之间的 CSS 问题
win10 visual studio IIS Express 局域网调试,默认只能localhost