We have a windows service created in .NET 2.0. I’ve set the Platform Target to X86, and the installer to be X86. The projects it references are set to ANYCPU.
We’re running this on a 64bit server. It has to be 32bit because the ODBC drivers it accesses are 32bit, and they bomb heavily if accessed from a 64bit application.
I’ve seen that on a 64bit machine, some processes have the *32 beside them to denote 32bit, however that doesn’t seem to be the case with a test one I created that specifically targets 32bit (X86) to see if it actually was that. The service we’re running does not show *32 beside the service name.
Any thoughts on this? If it is not being run as 32 bit (X86), then I’m surprised as I’ve forced the build to be that.
Update, We found it’s running in 64bit, even though the Services project was forced to buid in X86 mode. What would cause this?
One plausible explanation for the discrepency is that you’re deploying the output of a different build configuration.
Could it be that you setup your Debug configuration to target x86, but didn’t make the change to the Release configuration, thereby leaving it as AnyCPU and deploying it to production?