I am having problem in running windows service of 32 bit on 64 bit windows server, query that i have is as following
1) will there be any problem if a windows service( using all 32 bit DLL's) is running on a 64 bit widows server??
2) If yes then how can we make a windows service of 32 bit run on windows server 2003 R2.
every time i try to run the service event log shows me error that attempt a load a program that is with incorrect format.( Exception from HRESULT: 0x8007000B)
Can this be a problem of service having any of its dll's of 64 bit?
You can absolutely run a 32-bit service on a 64-bit Windows OS.
can this be a problem of service having any of its dll's of 64 bit?
If the service cannot find a 32-bit version of DLLs that it references, it would fail to load. If the service is written with managed code, use the Fusion Log Viewer (Fuslogvw) to see if there are any binding failures.
Related
This problem occurs on some virtual machines under Windows Server 2012 or 2016. I can only run the 32-bit version although it is 64-bit OS.
My DLL supposed to run on ISAPI-DLL mode (therefore called by IIS) also fails (Error 500).
I suspected msolebdsql.dll (SQL Server ODBC driver) to be only 32-bit compatible on these machines, but it seems unlikely.
I've been spending hours on looking for another feature that could be refused by Windows (invalid Windows API call ? There are very few, and it's very common ones). I failed.
Can someone help ?
I need to work with Delphi 6 Update 2 in Windows 8.1 x64 (in case you were wondering, it's about maintaining an old application, migrating to a newer version is not an option. I can't use a VM because I use the same machine to connect to some peripherals that don't work in a VM).
The problem is that Update 2 has a 32 bit installer with a 16 bit stub. So the current behaviour is that the installer starts, it extracts the files in a temp location, starts the setup then nothing appears on screen.
So far, I gathered that it is impossible to do it. But the same behaviour I 've seen for SQL Server 2000 (don't ask) but there I was able to use msetup.exe (DemoShield) to open a sqlservr.dbd that started the script. However, there is no such dbd file. I guess I was lucky on SQLServer 2000.
So far I've tried compatibility mode, DosBox, replacing the setup file with both Installshield 3 and 5, waiting for hours for the setup to start (sometimes, W8 does that), even comparing files and registries on an XP machine before and after update 2 but this might be a bit too risky to apply on a real machine.
Since Windows 8.1 86 includes Hyper-V for running VMs, most modern hardware supports Hyper-V, and Windows 8 x86 can still run 16-bit based apps:
Install a Windows 8.1 x86 VM under your host physical machine, then install it there.
The up-tick: it is easy to move your VM to a new host without needing to reinstall a full new VM.
See http://www.techrepublic.com/blog/windows-and-office/get-started-with-windows-8-client-hyper-v-the-right-way/7893/ and http://www.infoworld.com/d/virtualization/5-excellent-uses-of-windows-8-hyper-v-208436 to get started with Hyper-V.
Hyper-V can redirect quite a bit of hardware from the host to the VM nowadays. For "old" hardware like COM and LPT ports you often can buy USB adapters that can be redirected.
If installing on x86 Windows 8.1 works and x64 fails, I think you have proved the assumption that the 16-bit portion of the installer is the culprit.
Maybe my blog post from last year can solve your problem:
http://blog.dummzeuch.de/2013/11/11/delphi-6-on-windows-8-1/
excerpt:
I just deleted the registry entry
HKCU\Software\Borland\Delphi\6.0\LM
(I did not make a backup, what would have been the point?)
I started Delphi 6, ignored the warning about incompatibilities (which was talking about Delphi 7 anyway) and went through the registration/activation process again. This time it worked.
Maybe I should mention, that I did not install any of my Delphi versions to c:\program files but put them into c:\Delphi instead to avoid any problems with access rights to the installation directory.
I have developed a windows servce which runs perfectly on Windows server 2008 (64bit), windows 7 (64bit). I have compiled the same service in to 32 bit, but it only runs on 32bit windows 7, on 32 bit windows xp it stops unexpectedly. Service works with SQLite database ( create, insert and .. ) and Timer threads. Plse help if anyone know the issue
I am trying to compile and run a really really old application on my Windows 7 box.
It seems to need NTWDBLIB.DLL from SQL Server 2000. I can get that file, but it is a 32 bit file. When I try to run RegServ32 on it I get an error message.
Installing SQL Server 2000 Client tools is not allowed on Windows 7.
Is there any way of getting this file? (Short of making a 64 bit VM and installing on it to get the file.)
I just needed to copy the 32 bit version to the SysWOW64 folder rather than the System32 folder.
Kind of lame that the folder with 64 in the name is for the 32 bit stuff and the folder with the 32 in the name is for the 64 bit stuff.
Given the error message, it looks there may be issue with SQL Server 2000 executables in Windows 7. I'd suggest you to install a newer client (2005 or 2008 with all the required SP to be run on Windows 7), they are still able to connect to a SQL Server 2000 server.
We've had a 32 bit terminal services computer running some Windows services we constructed using .NET. Recently we moved everything to a 64 bit machine. Most things work. However, we are getting grief from a dll for apachefop.net.
In particular we get the following error
Error: Plugin Transcript Service
Execution Failed: Could not load file
or assembly 'apachefop.net,
Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null' or one of its
dependencies. An attempt was made to
load a program with an incorrect
format.
I'm guessing that this is because it isn't meant to work on a 64 bit machine. Any suggestions about how to rectify this type of situation?
The problems seems to be caused by the fact that your assembly has been compiled with the anycpu setting. In this mode, when run on a 64 bits machine, your process automatically becomes a 64 bits process while your native references don't... And as it is not possible to load 32bits libraries from a 64 bits process you're running into troubles.
To quickly diagnose if it is the case you can use the corflags.exe which is part of the .net framework :
corflags.exe pathtoyourdotnetprogram /32bit+
Then run your program. If your soft is running well, then you should change the anycpu settings in your project to force the compiler to compile to a 32bits assembly.