Solved! Go to Solution.
On the installation media there is a utility called PatchFinder. Run that and post the dialog displayed.
My guess is that the problem is that you have IIS configured to run in 32 bits.
It should be simple to modify your service to log a message to a file on startup. The message should simply say whether or not the host process is 64 bit. Here is the code that you need to do that:
var isSixtyFourBit = IntPtr.Size == 8;
Processes are either 32 bit or 64 bit and you cannot load a 32 bit DLL in a 64 bit host process nor can you load a 64 bit DLL in a 32 host process. ArcGIS Server is 64 bit which means that the host process must be 64 bit. Desktop is 32 bit which means that the host process must be 32 bit.
In the case of IIS, it is IIS configuration which determines whether the host process is 32 or 64 bit.
Set your C# project properties to build x64.
Thanks for your patience! I set my C# project properties to build x64, and then tried to debug it. The below errors occurred: "Could not load file or assembly 'canIceService' or one of its dependencies. An attempt was made to load a program with an incorrect format."