iisiis-8isapiiirf

IIRF on IIS8 / Window Server 2012 Throwing w3wp.exe Exceptions


Has anyone had any luck getting IIRF to work with IIS8?

I'm migrating an existing PHP web app off of an IIS 7.5 / Windows Server 2008 R2 server onto the new IIS8 / 2012 server. I downloaded and tested all IIRF 2.x versions to no avail. I've run Debug Diagnostics but don't get much detail information on the failed w3wp.exe process. The IIRF logs show the exception below.

I don't have much URL rewriting experience and wonder if I should use Internet Server API's URL Rewrite instead.

Error Log Excerpt

Wed Apr 15 16:11:59 - 3348 - GetServerVariable: getting 'SERVER_PORT'

Wed Apr 15 16:11:59 - 3348 - GetServerVariable: 4 bytes

Wed Apr 15 16:11:59 - 3348 - GetServerVariable: result '443'

Wed Apr 15 16:11:59 - 3348 - GetServerVariable: getting 'HTTPS'

Wed Apr 15 16:11:59 - 3348 - GetServerVariable: 3 bytes

Wed Apr 15 16:11:59 - 3348 - GetServerVariable: result 'on'

Wed Apr 15 16:11:59 - 3348 - EXCEPTION

Wed Apr 15 16:11:59 - 3348 - SymInit: Symbol-SearchPath: 'C:\inetpub\ISAPI\Ionic Rewrite\2.1.2.0-Release-x64\;.;c:\windows\system32\inetsrv;c:\windows\system32\inetsrv;C:\Windows;C:\Windows\system32;SRVC:\websymbolshttp://msdl.microsoft.com/download/symbols;', symOptions: 530, UserName: 'MyUserNameHere'

Wed Apr 15 16:11:59 - 3348 - OS-Version: 6.3.9600 () 0x110-0x3

Wed Apr 15 16:11:59 - 3348 - Stack trace:

00007FFA846DC579 module(filter): (filename not available): RegisterModule

00007FFA8461C579 module(IIRF): (filename not available): Iirf_GetVersion

00007FFA8461C896 module(IIRF): (filename not available): HttpFilterProc

00007FFA846D1B97 module(filter): (filename not available): (function-name not available)

00007FFA846D1EA9 module(filter): (filename not available): (function-name not available)

00007FFA846D1600 module(filter): (filename not available): (function-name not available)

00007FFA86B330A5 module(iiscore): (filename not available): (function-name not available)

00007FFA86B32908 module(iiscore): (filename not available): (function-name not available)

00007FFA86B319A6 module(iiscore): (filename not available): (function-name not available)

00007FFA86B3641C module(iiscore): (filename not available): (function-name not available)

00007FFA86B37FD3 module(iiscore): (filename not available): (function-name not available)

00007FFA86B111A9 module(w3dt): (filename not available): UlAtqSetContextProperty

00007FFA884F20C3 module(W3TP): (filename not available): THREAD_POOL::BindIoCompletionCallback

00007FFA884F1FF3 module(W3TP): (filename not available): THREAD_POOL::BindIoCompletionCallback

00007FFA884F1F7E module(W3TP): (filename not available): THREAD_POOL::BindIoCompletionCallback

00007FFA936516AD module(KERNEL32): (filename not available): BaseThreadInitThunk

00007FFA938CE954 module(ntdll): (filename not available): RtlUserThreadStart

00007FFA938CE954 module(ntdll): (filename not available): RtlUserThreadStart


Solution

  • I'm having the exact same issue, just moved from server 2008 (IIS 7.5) to 2012 (IIS 8.5) and my usual IIRF version 2.1.2.0-x64 does not work, but only on redirects, rewrites seem to work. Some suggested to go back to v2.0 but I have done that it does not work at all, maybe because its not a x64 version. I have also tried the latest 2.1.2.3-x64 and same peoblem, no redirects. I came across some one that have fixed it here (https://iirf.codeplex.com/workitem/34722) but unfortunately have not published the new DLL. Can anyone try the fix which involves re-compiling and then release the DLL? Alot of people would benefit from it. Thanks.

    -- Edit -- (update)

    I have just managed to get IIRF to work in IIS8+, but only IIRF-2.0.1.15 32bit will work, it involves the usual install, then you have to go to advanced settings of the application pool of the site using IIRF and Enable 32-Bit Applications = True, this is of course because IIRF-2.0.1.15 is 32 bit. Not the best but it works. I am trying to find a fixed 2.1 x64 DLL and when I do, I will make it available. Thanks.