Friday, January 14, 2011

II7 - Handler Mapping not run

I've created a script handler mapping on a Windows 2008 64bit with IIS 7. The handler dll never gets called, and I get a 404 error. On an identical box, only running 32bit Windows 2008, it runs fine. Below is the handler maps in the web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="DeltekTE" path="*.jsp" verb="*" modules="IsapiModule" scriptProcessor="D:\NewTime\DeltekTC\iisproxy.dll" resourceType="Unspecified" preCondition="bitness32" />
            <add name="DeltekTC" path="*.msv" verb="*" modules="IsapiModule" scriptProcessor="D:\NewTime\DeltekTC\iisproxy.dll" resourceType="Unspecified" preCondition="bitness32" />
        </handlers>
    </system.webServer>
</configuration>

In the ISAPI and CGI Restrictions at the server level, the dll is allowed to run. The Network Service user and IIS_USRS are allowed to read and execute the dll. Why doesn't the mapping work?

  • You probably want to make sure your app pool is set to 32 bit, not just your handler .

    Try looking at the Application pool in IIS Manager, click the app pool, then click Advanced Settings. Change the "enable 32-bit applications" to true.

    You can also use AppCMD to change this:

    C:\Windows\System32\inetsrv\AppCMD.EXE SET AppPool "DefaultAppPool" /enable32BitAppOnWin64:true
    

    You would need to change "DefaultAppPool" to the app pool name:

    C:\Windows\System32\inetsrv\AppCMD.EXE LIST AppPool
    

    You could also add a new AppPool just for this:

    C:\Windows\System32\inetsrv\AppCMD.EXE ADD AppPool /name:"New32BitPool"
    C:\Windows\System32\inetsrv\AppCMD.EXE SET AppPool "New32BitPool" /enable32BitAppOnWin64:true
    

0 comments:

Post a Comment