這兩天在調試原來的程序時,調用WCF服務出現如下錯誤:
{"遠程服務器返回錯誤: (500) 內部服務器錯誤。"}
錯誤信息如下:
響應消息的內容類型 text/html; charset=utf-8 與綁定(text/xml; charset=utf-8)的內容類型不匹配。如果使用自定義編碼器,請確保正確實現 IsContentTypeSupported 方法。響應的前 1024 個字節為:“<!DOCTYPE html>
<html>
<head>
<title>未能加載文件或程序集“Oracle.DataAccess”或它的某一個依賴項。試圖加載格式不正確的程序。</title>
<meta name="viewport" content="width=device-width" />
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold;”。
因為原來程序是可以的,不過原來的環境是windows2003,現在環境是Windows2008(64),WCF服務是IIS寄宿的,開始懷疑程序問題,如是直接訪問調試環境下的WCF服務,沒問題。於是直接在IE中訪問WCF服務,提示:
未能加載文件或程序集“Oracle.DataAccess”或它的某一個依賴項。試圖加載格式不正確的程序
開始懷疑是版本問題,但別的機器上都可以。後來在網上搜到解決此類型的方法,總結如下:
64位IIS應用程序池,默認是不加載32位應用程序集的,我的Oracle.DataAccesss.dll是32位的,需按下面進行修改:
做上述調整後問題解決。
PS:64位下,IIS的設置還是有很大的區別,把解決的問題都記下來,積累經驗。
摘自 hawksoft