Windows XP URLDownloadToFile异常失败bug一例

奇葩的问题,某个URL IE无法下载,但是用其他下载工具却能下载,我倒不在乎其他下载工具咋下的……关键是URLDownloadToFile拉不到这个文件,各种失败,这个让我比较在意,看看原因是什么。

首先,这个问题是只在Windows XP,应该是没打补丁的XP3上有,至于打补丁的情况我也没验证了,跟urlmon有关。这个是报错信息:

(ce4.9d8): Unknown exception - code 80040155 (first chance)
(ce4.84c): Unknown exception - code 80040155 (first chance)
eax=80040155

这个结果由CFileDownload::KickOffDownload返回。这个值是E_IIDNOTREG,interface not registered。这是为什么呢……感觉如此奇怪。

URLDownloadToFile的工作模式是 :创建一个CFileDownload,然后调用CFileDownload::KickOffDownload,CFileDownload派生自CBaseBSCB,CBaseBSCB::KickOffDownload会:
1、创建一个URL Moniker(IMoniker);
2、获得IBindCtx接口;
3、RegisterBindStatusCallback注册CallBack
4、将Moniker与IStream绑定,此时开始下载

BindToStorage时出错,返回REGDB_E_IIDNOTREG,原因是CTransaction::Start会检查请求的MIME Type,但是服务器蛋疼的把MIME Type设置成了……
f1.jpg

最后通知管理员解决了……

标签:none

仅有 1 条评论

  1. LonelyRain LonelyRain

    233333333

添加新评论

captcha
请输入验证码