« Previous Next »

Thread: Unable to get CGI executables to work

Last post 07-06-2009 1:49 PM by abdelelbouhy. 5 replies.

Average Rating Rate It (5)

RSS

Page 1 of 1 (6 items)

Sort Posts:

  • 04-18-2007, 8:59 AM

    • stevenv
    • Top 500 Contributor
    • Joined on 04-18-2007, 12:43 PM
    • Posts 14

    Unable to get CGI executables to work

    Hi,

     

    I have an application virtual directory in IIS 7 which contains two CGI executable applications written in Delphi. Prior to IIS 7, we could send requests to these CGI executables via URL i.e. http://servername/cgi-bin/cgi.exe/request which would then result in the CGI running as a process on the server and responding to the request.

     

    In IIS 5.1 and earlier, we just created an application virtual directory and pointed it to the location of the CGI executables on the web server hard disk. In IIS 6, we had to enable the Web Service Extensions in order for the CGI executables to run. However, we are now testing IIS 7 and I have been unable to get the executable to work.

     

    When I make a request (which would normally work in IIS 6 and earlier) through Internet Explorer, the page I get is as follows:

     

    Server Error in Application "Default Web Site/CGI-BIN"

    --------------------------------------------------------------------------------

    HTTP Error 404.2 - Not Found
    Description: The page you are requesting cannot be served because of the ISAPI and CGI Restriction list settings on the Web server.

    Error Code: 0x800704ec

    Notification: ExecuteRequestHandler

    Module: CgiModule

    Requested URL: http://stevenv-vista:80/cgi-bin/testcgi.exe/runtest

    Physical Path: C:\Program Files\Testing CGI\testcgi.exe\runtest

    Logon User: Anonymous

    Logon Method: Anonymous

    Failed Request Tracing Log Directory: C:\inetpub\logs\FailedReqLogFiles

    Handler: CGI-exe

    Most likely causes:

    No handler mapping for this request was found. A feature may have to be installed.
    The Web service extension for the requested resource is not enabled on the server.
    The mapping for the extension points to the incorrect location.
    The extension was misspelled in the browser or the Web server.
    What you can try:

    Install the feature that handles this request. For example, if you get this error for an .ASPX page, you may have to install ASP.NET via IIS setup.
    Verify that the Web service extension requested is enabled on the server.
    Open the IIS Manager and navigate to the server level.
    In the Features view, double-click ISAPI and CGI Restrictions to verify that the Web service extension is set to Allowed.
    If the extension is not in the list, click Add in the Actions pane.
    In the Add ISAPI and CGI Restrictions dialog box, type the path of the .dll or .exe file in the ISAPI or CGI Path box, or click Browse to navigate to the location of the file.
    In the Description box, type a brief description of the restriction.
    (Optional) Check "Allow extension path to execute" to allow the restriction to run automatically. If you do not check this option, the restriction status is Not Allowed, which is the default. You can allow the restriction later by selecting it and clicking Allow on the Actions pane.
    Click OK.
    NOTE: Make sure that this Web service extension or CGI is needed for your Web server before adding it to the list.
    Verify that the location of the extension is correct.
    Verify that the URL for the extension is spelled correctly both in the browser and the Web server.
    Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click here.
    More Information... This error occurs when the necessary Web service extension is not enabled, the location or the name of the extension are misspelled or incorrectly entered.


    --------------------------------------------------------------------------------
    Server Version Information: Internet Information Services 7.0


    I've enabled Failed Request Tracing on the webserver and my log file contains:
     

    SECURITY_DENIED_BY_CGI_RESTRICTION
    Warning
    ImageName="C:\Program Files\Testing CGI\testcgi.exe"

    MODULE_SET_RESPONSE_ERROR_STATUS
    Warning
    ModuleName="CgiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="404", HttpReason="Not Found", HttpSubStatus="2", ErrorCode="This program is blocked by group policy. For more information, contact your system administrator. (0x800704ec)", ConfigExceptionInfo=""

     

    Any ideas? 

  • 04-18-2007, 1:46 PM In reply to

    • anilr
    • Top 10 Contributor
    • Joined on 05-23-2006, 6:13 PM
    • Redmond, WA
    • Posts 2,343

    Re: Unable to get CGI executables to work

    You have to do the same thing you had to do on IIS6 - enable the CGI to run in the ISAPI/CGI restriction list (new name for websvcextrestrictionlist).
    Anil Ruia
    Senior Software Design Engineer
    IIS Core Server
  • 04-19-2007, 4:03 AM In reply to

    • stevenv
    • Top 500 Contributor
    • Joined on 04-18-2007, 12:43 PM
    • Posts 14

    Re: Unable to get CGI executables to work

    Hi,

     

    Thanks for the reply. I forgot to mention in my original post that I have also already added it to the CGI Restriction List and set to allow execution. Also, under Handler Mappings, I've enabled CGI-exe and ISAPI-dll and checked Execute under Edit Handler Permissions.
     

    Steven 

  • 04-19-2007, 2:01 PM In reply to

    • anilr
    • Top 10 Contributor
    • Joined on 05-23-2006, 6:13 PM
    • Redmond, WA
    • Posts 2,343

    Re: Unable to get CGI executables to work

    The name of the CGI in the isapiCgiRestriction has to exactly match the name being executed - can you tell the output of "%windir%\system32\inetsrv\appcmd.exe list config -section:isapiCgiRestriction"

    Anil Ruia
    Senior Software Design Engineer
    IIS Core Server
  • 04-23-2007, 8:24 AM In reply to

    • stevenv
    • Top 500 Contributor
    • Joined on 04-18-2007, 12:43 PM
    • Posts 14

    Re: Unable to get CGI executables to work

    The output of %windir%\system32\inetsrv\appcmd list config -section:isapiCgiRestriction:

    <system.webServer>
      <security>
        <isapiCgiRestriction>
          <add path="%windir%\system32\inetsrv\asp.dll" allowed="true" groupId="ASP"
     description="Active Server Pages" />
          <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" a
    llowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
          <add path=""C:\Program Files\Testing CGI\testcgi.exe"" allowe
    d="true" description="StatsCGI" />
          <add path=""C:\Program Files\Testing CGI\testcgi2.exe"" allowed=
    "true" description="SttCGI" />
        </isapiCgiRestriction>
      </security>
    </system.webServer>

     

    Thanks.

    Steven 

  • 07-06-2009, 1:49 PM In reply to

    Re: Unable to get CGI executables to work

    hello

    i did follow all the steps to configure iis7 and i did enable cgi to run in the ISAPI/CGI list

    but when i enter the file path for test it doesn't work instead i got an alert with save or run file it doesn't execute what i'm trying to run is a perl program just to test if the script execution is working what you think i'm doing wrong

    please help

Page 1 of 1 (6 items)
Microsoft Communities