【发布时间】:2018-01-10 01:09:22
【问题描述】:
我构建了一个基本的 RESTful Web 服务,以便我可以接收事件。我可以在本地 IIS 上正常运行,但是在服务器上的 IIS 10 中发布时出现以下错误
HTTP 错误 500.21 - 内部服务器错误 处理程序“ExtensionlessUrlHandler-Integrated-4.0”有一个坏模块“ManagedPipelineHandler”
我将应用程序池托管管道模式设置为集成并在应用程序功能中启用目录浏览。我的网络配置如下所示:
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
如果我将应用程序池托管管道模式更改为“经典”,我实际上可以看到根站点,但尝试浏览或调用 API 会出现 404(例如 xx.x.xxx.x/api/Controller/Action )。
【问题讨论】:
-
@christok 是的,显然如果 IIS 是在 .NET 之后安装的,那么您必须返回服务器角色/功能并启用 .NET 4.6
-
问题 .Net 已安装以及角色/功能中的 IIS 是否需要重新安装?
-
@MicahArmantrout 不应该。回到角色/功能,找到 .Net 看看 4.6 是否勾选/启用
-
它已启用并安装了 IIS,但我仍然收到此错误
-
我确实注意到我的应用程序适用于 4.5 而不是 4.6,所以也许我需要安装 4.5
标签: c# asp.net iis asp.net-web-api