運行於64操做系統上的C#客戶端經過WCF訪問Oracle數據庫不兼容問題

運行平臺: Windows 7  64位操做系統php

運行環境: IIS 7html

編程語言:C#數據庫

數據庫: 32位的Oracle 10g編程

運行緣由:64位操做系統C#客戶端程序經過WCF訪問ORACLE數據庫服務器

結果產生異常:System.InvalidOperationException: 未在本地計算機上註冊「MSDAORA」提供程序app

 

      客戶端程序在本地運行可以正常訪問Oracle數據庫數據, 但經過WCF鏈接不上Oracle數據庫, 一開始覺得是"MSDAORA"驅動沒裝上,經過檢查,MSDAORA其實已經存在, Oracle Client 也已經裝上,但仍是不行。經過百度搜索發現MSDAORA沒有用64bit的驅動,因而按照網上給出的解決方案進行嘗試:編程語言

  方案:把程序所有(包括全部的DLL)從新編譯,編譯的目標是x86(32位), 而後再發布到遠程服務器上。ui

  按照網上給出的方案對因此項目將編譯目標改爲x86後從新編譯,運行客戶端程序的時候卻又出現了新的問題:url

   難道網上給出的方案不行嗎?第一次遇到這種問題,百思不得其解,只能又求助於百度。通過又一輪的百度,發現將項目編譯目標改爲x86後從新編譯還不夠,還須要spa

配置一下IIS的應用程序池,將應用程序池配置成「啓用32位應用程序」,以下圖所示配置:

通過更改IIS應用程序池配置後,再運行客戶端程序,OK一切正常。

 

備註:由於客戶端程序用C#編寫因此標題中有C#關鍵字,可是其它編程語言編寫的客戶端程序可能也會遇到一樣的問題。

相關文章
相關標籤/搜索