Running platform: Windows 7 64-bit operating system
Operating Environment: IIS 7
Programming Language: C #
Database: 32-bit Oracle 10g
Operating reason: 64-bit operating system C # client program accesses the Oracle database through WCF
Result exception:system.invalidoperationexception: "Msdaora" Provider is not registered on the local computer
The client program runs locally to access the Oracle database data, but does not connect to the Oracle database via WCF, and at first thought it was a "msdaora" driver that was not mounted, checked, Msdaora actually existed, Oracle The Client has been installed, but it still doesn't work. Baidu Search found that Msdaora did not use the 64bit driver, and then follow the online solution to try:
Scenario: Recompile the program all (including all DLLs), the target of the compilation is x86 (32-bit), and then publish it to the remote server.
According to the scheme given on the net, the project compiles the target into x86, and then it has a new problem when running the client program:
Isn't the plan given on the internet impossible? First encounter this kind of problem, think not its solution, can only resort to Baidu. After another round of Baidu, found that the project compiled target to x86 after the recompile is not enough, but also need
Configure the application pool for IIS to configure the application pool to "enable 32-bit applications" as shown in the configuration:
After changing the IIS application pool configuration, run the client program again, OK everything is fine.
Note: Because the client program is written in C #, there are C # keywords in the header, but client programs written in other programming languages may also encounter the same problem.
C # clients running on 64 operating systems access Oracle database incompatibility issues through WCF