Finally a 64bit Version of IIRF for 64bit OS/IIS

Topics: Developer Forum
May 29, 2010 at 10:42 AM

Hello All,

I am not sure how close I am, but looks like I am just one step away from complieing the Latest IIRF code in 64bit mode. Here is the complete story. I have a Windows 2003 64bit VPS with 8 core AMD processor. It has IIS 6.0 in 64bit. To get URL rewrite I first try to convert IIS in 32bit mode and try to load Aug 2009 Stable release but it fails with error in Event Log as that it fail because it expect a AMD 64 bit DLL file. So I thought to complie IIRF in 64bit and for this when I use Latest Source code from REPO and using Visual Studio 2008 to complie in x64 configuration, but it start giving me PCRE linkage error.

The obvious reason I see is that my PCRE that came with Source is in 32bit mode and hence the reference is failing. So I download PCRE Source from PCRE.org [v 8.02] and use CMake from cmake.org to make a Visual Studio 9 64bit Solution file from it. [so I can complie it in 64bit], there it compile just fine from default. however it never generate a PCRE.lib but make pcred.lib, so I rename and put pcred as pcre.lib in 3rdparty software for IIRF source and also replace pcre.h from that came with PCRE source.

I complie my IIRF and it gets complied fine. I upload IIRF.dll [only this one file] to server and add as ISAPI Filter for the selected website. And now I use IISRESET command to restart IIS, but it just remove the reference I add in ISAPI section and no error is logged in Event viewer.

I am not sure what is wrong with it now. Can anyone please guide me from here. IF I succeed here I can submit the patch for 64bit.

May 29, 2010 at 6:13 PM

Discussion OVER.

IIRF works on 64bit from today for everyone. I will be submiting the Patch for inclusion, or your can read on HOW To Compile IIRF in 64bit on my blog at : http://www.sumitgupta.net/iirf-url-rewrite-64bit-resolved/

Coordinator
May 29, 2010 at 7:51 PM

nice work! 

thanks for doing this.

 

Coordinator
May 29, 2010 at 8:37 PM

Ahhhh, Sumit - I just tried this and got 59 warnings compiling IIRF. What did you do about those warnings?

May 30, 2010 at 12:59 PM

Well I ignore these warning as I read they are mainly the "Possible" data lose, and I assume that our data is not that big, like conversion from int64 to int, techincally int is smaller storage so hard chance of data lose. and other structure shows same error for int datatype as part of them only.

It is live with my test url from last 18 hrs and I still have to see if there is any problem arise, but I didn't expect it unless it is there in base code itself, but not from these warning. This is what I expect, but hopefully it works fine.

Coordinator
May 30, 2010 at 5:44 PM
Edited Jun 3, 2010 at 5:39 PM

I communicated with the maintainer of PCRE, he seems to believe the warnnigs are benign.

Sumit, you've motivated me. 

I've published builds of x64 binaries on the downloads page for v2.1.

find them at: http://iirf.codeplex.com/releases/view/36814

I haven't tested them. I'd appreciate your verification of the build.

That goes for anyone else, too!  Any feedback on the x64 binary is appreciated. 

 

May 30, 2010 at 5:49 PM

Well, I just finish the part, you already did the efforts. I should thank you.

I have installed the Module on my server for Just one Site so far, that runs Wordpress Blog. And it is working fine. Maybe by next weekend I transfer my blog that has traffic using this module. But so far everything is cool on my server, no extra RAM consumption or storage taking place. Everything looks stable. Will post if any bug arise.

BTW, you can download Windows 2008 64bit Binary from Trial/Evaluation Center at microsoft if you want to test your software, all you need is any modern process that has AMD64 or ET64 stuff, which I guess is by default for most process available today.

Jun 3, 2010 at 4:18 PM

Thanks very much for this. We're running IIS6 on our 64 bit server in 32 bit mode at the moment, so I'm looking forward to changing it back and operating everything properly. Good work. I'll keep you posted if I come up against anything out of the ordinary, but I will be a little wary as it's going straight on to a production server as I don't have a 64 bit test server.

Thanks again.

shonk

Jun 4, 2010 at 7:16 PM
Don't worry Shonk, we just recompile it in 64bit mode using visual studio. there are some warning that is because of int datatype, which anyways store small values, so it is pretty safe to use. My server is up with this 64bit version this my first comment on this thread. It is all good for me.
Dec 9, 2010 at 5:05 PM

Hi guys, I've got a 64 bit windows 2003 (not R2) server that I'm working on and due to the fact that it hides the .net tab when I set the Enable32bitAppOnWin64 value to true in IIS. It also doesn't run the 32 bit version of this dll. I'm guessing it's 64 bit or nothing. So I'm trying the avenue of running this 64 bit binary. I don't want to be a downer but it didn't work for me. From the log viewer:

"ISAPI Filter 'C:\inetpub\wwwroot\sitename\IonicIsapiRewriter\IIRF.dll' could not be loaded due to a configuration problem. The current configuration only supports loading images built for a x86 processor architecture. The data field contains the error number. To learn more about this issue, including how to troubleshooting this kind of processor architecture mismatch error, see http://go.microsoft.com/fwlink/?LinkId=29349."

any thoughts?

Dec 10, 2010 at 3:41 PM

From log it looks like that your DLL is indeed not a 64bit. Probably you are using the Recommended Stable version of software, which is not 64bit compiled. If you need 64bit version you need to recomplie it from latest source code. Check my earlier reply in this thread to see how to complie it properly.

Hope that helps

Coordinator
Dec 14, 2010 at 11:52 AM

No vikasumit, there is a a 64-bit binary available for download. It's not the case that people need to recompile the source.

mtiles - I also don't agree with vikasumit about the diagnosis of your problem. He suggested that the DLL is not 64-bit.  I think it's the opposite problem.  The DLL appears to be 64-bit, but the machine is refusing to run it. 

I think you have "Enable32BitAppOnWin64" still set. 

Also - I don't know what you're saying about the .NET Tab. There's no requirement for .NET in IIRF.  You may be interested in .NET, but for IIRF, it doesn't matter. 

Coordinator
Jan 7, 2011 at 12:12 PM
Edited Jan 7, 2011 at 12:14 PM

FYI, everyone. There's a new revision of IIRF available, v2.1.1.25.  http://iirf.codeplex.com/releases/view/58734

It includes x64 binaries, as well as x86 binaries. Make sure to download the right thing.

Oct 18, 2011 at 2:28 AM

To make IIRF work well on 64-Bit Windows OS ,you can try to follow the steps http://iirf.codeplex.com/discussions/276031  ,already tested on Windows OS X64 ,good luck to you :)