问题
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
回答1:
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.
回答2:
Finally I was given a new version revision that works in IIS8+ and I have made it available on my website (http://www.nelsonpires.com/web-development/ionics-isapi-rewrite-filter-aka-iirf-for-iis8/) for anyone to download and use. I have tested it and confirm it works great on IIS8.5. Hope this works for you too.
来源:https://stackoverflow.com/questions/29674567/iirf-on-iis8-window-server-2012-throwing-w3wp-exe-exceptions