惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
C
Check Point Blog
有赞技术团队
有赞技术团队
H
Help Net Security
V
Vulnerabilities – Threatpost
N
News | PayPal Newsroom
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
LINUX DO - 最新话题
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 【当耐特】
爱范儿
爱范儿
I
InfoQ
V
Visual Studio Blog
O
OpenAI News
Google DeepMind News
Google DeepMind News
S
Security Affairs
T
Troy Hunt's Blog
P
Palo Alto Networks Blog
Spread Privacy
Spread Privacy
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
N
Netflix TechBlog - Medium
Latest news
Latest news
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Webroot Blog
Webroot Blog
S
Schneier on Security
MongoDB | Blog
MongoDB | Blog
T
Tor Project blog
V2EX - 技术
V2EX - 技术
Security Latest
Security Latest
Cloudbric
Cloudbric
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
C
CERT Recently Published Vulnerability Notes
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
S
Securelist
C
Cisco Blogs
博客园_首页
TaoSecurity Blog
TaoSecurity Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
S
Secure Thoughts

博客园 - 问天

开发笔记1: 范型 C#范型不会用,求助~ Web安全,以新浪微博“郭美美”蠕虫为例 介绍两个Python web框架:Django & Tornado 扯一下抽象 跟赵姐夫扯 webform的设计 MoSonic:对SubSonic的分布式存储、缓存改进尝试(4) MoSonic:对SubSonic的分布式存储、缓存改进尝试(3) MoSonic:对SubSonic的分布式存储、缓存改进尝试(2) MoSonic:对SubSonic的分布式存储、缓存改进方案尝试(1) 说说分页 iPhone Web App开发杂感 Katze - 简单的.net "ORM"框架 基于Gettext的asp.net网站多语言解决方案 Django on IronPython and Windows 动态修改.Net StreamReader Encoding编码 恐怖的迅雷 TinyMCE 的音乐插件/mp3 music insert plugin 微软是如何输掉API之战(下)
Discuz!NT在64位Windows下运行的问题
问天 · 2010-06-06 · via 博客园 - 问天

原文网址: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函数实现一遍。。。上传服务器。。。论坛首页终于出来了。。。

泪流满面。。。