Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web API On IIS 10 (Handler "ExtensionlessUrlHandler-Integrated-4.0" has a bad module "ManagedPipelineHandler")

I built a basic RESTful web service so that I can receive events. I can run this fine on local IIS, but have the following error when publishing it in IIS 10 on a server

HTTP Error 500.21 - Internal Server Error Handler "ExtensionlessUrlHandler-Integrated-4.0" has a bad module "ManagedPipelineHandler"

I set the application pool Managed Pipeline Mode to Integrated and enabled Directory Browsing in the app features. My web config looks like this:

<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>

If I change the application pool Managed Pipeline Mode to "Classic" I can actually see the root site but trying to browse or call to the API gives 404s (such as xx.x.xxx.x/api/Controller/Action).

like image 396
john smith Avatar asked Aug 02 '17 17:08

john smith


2 Answers

Using IIS 10 and .NET 4.6

  1. Add roles and Features
  2. Open up child nodes for WEB Server IIS
  3. Under Web Server, open nodes for Application Development
  4. Select ".NET Extensibility 4.6", "ASP.NET 4.6"

These resolves the problem.

like image 98
glens Avatar answered Oct 19 '22 05:10

glens


In Windows 10 I was able to resolve this via:

  1. Control Panel > Programs & Features > Turn Windows features on or off
  2. Removing .NET Framework 4.7 Advanced Services > ASP.NET 4.7
  3. Adding it back
like image 40
heneryville Avatar answered Oct 19 '22 07:10

heneryville