西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程操作系統(tǒng) → 64位windows 2008 系統(tǒng)下IIS7 加載 ISAPI 失敗

64位windows 2008 系統(tǒng)下IIS7 加載 ISAPI 失敗

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2011/6/17 7:35:15字體大。A-A+

作者:佚名點擊:573次評論:0次標(biāo)簽: iis7

  • 類型:系統(tǒng)其它大。174.5M語言:中文 評分:1.6
  • 標(biāo)簽:
立即下載

癥狀

公司一臺數(shù)據(jù)庫服務(wù)器上部署了IIS網(wǎng)站(IIS7),利用Sql Server Analysis Services的msmdpump.dll組件,實現(xiàn)了通過HTTP層來訪問Analysis Services(MSAS不支持HTTP遠(yuǎn)程訪問,非HTTP的遠(yuǎn)程訪問也一直沒成功過)。運行狀況一直良好,最近突然罷工。Debug發(fā)現(xiàn)在建立連接的時候總是拋出“The Connection either timed out or was lost”。

診斷

嘗試用企業(yè)管理器直接連接Analysis Services,成功,數(shù)據(jù)訪問也正常,說明Analysis Services服務(wù)運作正常。那看來問題是出在了IIS這一層。

直接在瀏覽器中通過http://machinename/olap/msmdpump.dll去訪問的時候,會彈出一個保存文件的對話框。正常情況下,服務(wù)器會返回500,因為沒有數(shù)據(jù)輸入,F(xiàn)在彈出保存文件的對話框,說明IIS把這個dll資源當(dāng)作一個普通文件來對待了,而不是調(diào)用ISAPI處理器來處理。

細(xì)看了網(wǎng)站的配置,似乎沒有問題,重新部署了一個網(wǎng)站,重新配置了ISAPI處理器映射,問題依舊出現(xiàn)。

自己探索了很久,未果,Google了很久,一篇文章(IIS7 - Running 32-bit and 64-bit ASP.NET versions at the same time on different worker processes)提醒了我。這篇文章講的是如何在不同的應(yīng)用程序池進(jìn)程上同時使用32位和64位的Asp.Net。

公司服務(wù)器出于性能考慮,用了64位系統(tǒng)。相應(yīng)的msmdpump.dll文件也是64位的,但I(xiàn)IS的應(yīng)用程序池進(jìn)程是多少位的,我倒還真沒考慮過。任務(wù)管理器一看,只有一個"w3wp.exe * 32”,果然是32位的。那問題的原因應(yīng)該是,32位的應(yīng)用程序池?zé)o法加載64位的Isapi處理器。

知道了問題所在,解決方法也很簡單,啟動一個64位的應(yīng)用程序池就行了。打開應(yīng)用程序池的高級設(shè)置,找到了“啟用32位應(yīng)用程序(enable32bitAppOnWin64)”的設(shè)置,將其從原來的True改成False(默認(rèn)值為False)。這個選項的作用就是允許在64位操作系統(tǒng)上,以32位的應(yīng)用程序池去加載32位的程序。

之所以會突然出現(xiàn)這個問題,是因為IIS的機器配置文件ApplicationHost.config文件中,全局應(yīng)用程序池的enable32bitAppOnWin64默認(rèn)值被意外修改為True。而我部署的IIS網(wǎng)站,由于沒有顯式設(shè)置此選項,因此會繼承ApplicationHost.config文件中的默認(rèn)值。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)