Hi
I built a 64bit ISAPI extension that works perfectly. I decided to convert it to 32bit and then changed the application pool to enable 32bit applications and the ISAPI extension fails to load and I receive a 404 error. If I put it back to 64bits it works perfectly. Is there something more I need to do besides enabling 32bit application in the application pool? I have other 32bit ISAPI extensions running in other application pools and they work perfectly. I am running IIS 10 on Windows Server 2022.
Thanks, Simon
Most likely you have some code in your ISAPI C++ code that doesn't work in 32 bit. You need to debug your code to see where it's failing.
I have to ask: Why would you put yourself through creating ISAPI extensions at this point? It's such a horrible experience and performance is not significantly better than a .NET based interface which is much easier and safer to build? Even setting aside the need for C++ (if you're good at it), ISAPI is such a pain in the ass to work with...
+++ Rick ---
I use ISAPI because it is very easy to build using Purebasic 32bit or 64bit and I have been doing it for years. I have not used .Net so I know very little about.
Part of the problem turned out to be that the bitness had not been set to 32 in all the config files.
Simon
Got it - I thought I remembered you were using some other technology other than C++. So you're not really using ISAPI, you're using whatever your PureBasic tooling is and it happens that they're building on top of ISAPI (sort of like Web Connection used to build ontop of ISAPI and now ontop of .NET).
Yeah the bloody bitness has often bitten me in the past, but the safest thing typically is to leave it off and let the Application Pool default handle it. I haven't seen it in ages so I think this got relaxed in newer versions of IIS and should only be set if you need to explicitly change the bitness to something other than what you're running the application pool as. I can't imagine a scenario where you'd ever run something different than what the App pool runs, but I suppose it depends on the tool if it's cross compiled for both 32 and 64 bit. I guess .NET automatically switches between the two, our old ISAPI was always 32 bit and only worked in 32 bit.
+++ Rick ---