Discuz!NT在64位Windows下啟動並執行問題

來源:互聯網
上載者:User

原文網址:http://www.blogwind.com/Wuvist/74545.shtml

===================================

非常搞,等了快一年Discuz!NT的免費版本依舊不支援64位Windows。

官方出了64位windows支援的指南居然是叫使用者把IIS設定為32位相容模式。。。說了等於沒說,這不叫在64位Windows下運行Discuz!NT,這叫如何不使用64位環境運行Discuz!NT。。。

(最鬱悶的是IIS 6是否開啟32位支援是一個全域設定,我專門為論壇開了32位支援,伺服器上別的依賴64位的程式怎麼辦?)

直接諮詢過Discuz的客服,MM很客氣,態度很好,但給的解決方案就是讓偶購買商業授權,說掏錢就一定沒問題。

但是聽得我很忐忑。。。以我自己開發程式的經驗,Discuz!NT的在64位運行故障,直接把IIS Application Pool搞崩潰,一定是程式內部的問題。。。而不是授權的問題。。。

總怕被MM給忽悠了。。。3000大元啊。。。反正Discuz!NT是開源的。。。這3000塊給自己賺不是更好?

這世界上總不會只有我運遇到這個問題。。。我就癡心的等。。。等了快一年。。。還是沒有解決。。。

今天終於怒了。。。自己動手,豐衣足食。。。

首先,下載Discuz!NT的源碼: https://svn.51aspx.com/svn/dnt

非常奇怪,Discuz!NT不用google code之類的;51aspx下載慢死。。。

本地編譯,上傳、部署debug版本。。。從官方論壇上看到,有若干網友說要編譯64位版本,甚至還說要把Discuz!NT用的幾個依賴庫也重新位64位編譯。。。我很懷疑這些網友究竟自己嘗試過沒有。。。反正,我按他們說的方法去做。。。浪費一整天不說,始終也沒有任何效果。。。

最後,祭出Debug Diagnostic Tool(感謝祖國,微軟去年底終於推出了64bit版!)神器。。。

直接用預設的Crash Rule跟蹤論壇的Application Pool進程。。。先訪問一個空aspx頁面啟動進程,之後便訪問論壇首頁。。。果然又掛了。。。而Debug Diagnostic Tools自動dump了進程出來。。。

很好。。。繼續祭出Debugging Tools For Windows神器。。。 

Load dump檔案。。。執行:!analyze -v

乖乖。。。立刻顯示:

 

0000000003502A90 00000642788F2237 mscorlib_ni!System.AccessViolationException..ctor()+0x17

(TransitionUM)

(TransitionMU)

000000000354E6D0 0000064278ACB013 mscorlib_ni!System.Security.Cryptography.CryptoAPITransform.TransformFinalBlock(Byte[], Int32, Int32)+0x123

000000000354E760 0000064278334403 mscorlib_ni!System.Security.Cryptography.CryptoStream.FlushFinalBlock()+0x33

000000000354E7A0 00000642801D09BA Discuz_Common!Discuz.Common.DES.Decode(System.String, System.String)+0x11a

000000000354E810 00000642801D0430 Discuz_Forum!Discuz.Forum.OnlineUsers.UpdateInfo(System.String, Int32, Int32, System.String)+0xc0

000000000354E890 00000642801CE4AB Discuz_Forum!Discuz.Forum.PageBase..ctor()+0x55b

問題很明顯了。。。Discuz!NT啟動時檢查使用者資訊的代碼出錯了。。。具體是:
Discuz.Common\Encrypt.cs檔案的97行 DES類Decode函數。。。

對DES不熟,不清楚為什麼64位下運行FlushFinalBlock會出錯。。。重新將DES的decode/encode函數實現一遍。。。上傳伺服器。。。論壇首頁終於出來了。。。

淚流滿面。。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.