Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I enable ISAPI DLLs for IIS 10 on Windows 10?

I've configured ISAPI DLLs for IIS 7.x for years, but this is the first time I've tried with Windows 10, and it is not working, and I cannot find any descriptions of how to do it successfully. I am working in Windows 10 Professional, and IIS and supporting technologies are installed.

Here's is what I've done in the past. First, I open the Internet Information Services Manager console. I then select the default Web site and open Handler Mappings. I right-click ISAPI-dll in the Disabled section, select Edit Feature Permissions, and place a checkmark next to Execute.

Since my ISAPI dll is a 32-bit DLL, and I am running Windows 10 64-bit Professional, I select Application Pools in the Connections pane, right-click DefaultAppPool, and select Advanced Settings, and then set Enable 32-Bit Applications to True.

Finally, I open the ISAPI and CGI Restrictions applet. I then right-click in the ISAPI and CGI Restrictions pane and select Edit Feature Settings, after which I place a checkmark next to Allow unspecified ISAPI modules.

The Handler Mappings applet no longer has a disabled ISAPI-dll entry. However, with the Handler Mappings applet open, I have been able to select Edit Feature Permissions, and place a checkmark next to Execute. I have been able to allow 32-bit applications in the default application pool, but the ISAPI and CGI Restrictions applet is no where to be found.

The end result is that despite the configuration that I have successfully performed as described above I still cannot run my ISAPI DLL. I have placed the DLL in the same location as my Windows 7 setup (under c:\inetpub\wwwroot\appfolder), and use the same URL. It runs in Windows 7, but not in Windows 10.

How do I configure IIS in Windows 10 to run this ISAPI DLL?

like image 615
Cary Jensen Avatar asked Nov 02 '15 17:11

Cary Jensen


People also ask

How do I enable ISAPI DLL in IIS 10?

Select the server node on the left hand side and double click click on “ISAPI and CGI Restrictions” on the right hand size. Right click in empty space and choose “Add…”. Add the path to your ISAPI dll, a description and select the check box so that it is allowed to execute. Click OK.

Where is Web service extensions in IIS 10?

1. In the View List under Server Configuration, click Internet Information Services. 2. Right-click the Web Service Extensions explorer and click Add Web Service Extension.

What is IIS ISAPI extension?

ISAPI extensions are true applications that run on IIS and have access to all of the functionality provided by IIS. As an example of how powerful ISAPI extensions can be, ASP pages are processed through an ISAPI extension called ASP. dll.


2 Answers

Perhaps a silly question, but are you sure the "CGI" and "ISAPI Extensions" features are installed as part of the "Internet Information Services", "World Wide Web Services", "Application Development Features"? I just tested, and without these two features, you will see the Handler Mappings, but no disabled ISAPI-dll entry (and also no "ISAPI and CGI restrictions" applet).

With these features present, I can use IIS7 the same way in Windows 10 as I normally do with Windows Server 2012.

like image 79
Bob Swart Avatar answered Sep 22 '22 19:09

Bob Swart


Here is how I got it to work on Windows 10 Pro with IIS installed.

  • Check that you have installed the “ISAPI Extensions” feature.
  • Click on the website and select "Handler Mappings" and add the module (or you can enable all if that is reasonable for your case.
  • Select the “Edit Feature Settings” from the Right pane(Actions) and enable read, script, and execute.
  • With the above done click on the Server node in the left pane.
  • Select “ISAPI and CGI Restrictions”
  • Click on Add, and enter the windows server pathname of your ISAPI Extension.
  • Select “Allow extension path to execute” , click OK
  • Note that this will put a web.config in the same directory. it should look like this ;
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <directoryBrowse enabled="false" />
  </system.webServer>
</configuration>
like image 38
J Muldoon Avatar answered Sep 19 '22 19:09

J Muldoon