用友下载文件变成0字节,搞了半天是这里出错

用友下载 ·
用友下载文件变成0字节,搞了半天是这里出错

下载页面跳来跳去,最后给我个0字节文件

说起来都是泪。上周帮客户整用友T3的安装包,照例去搜用友下载站,点开一个看起来挺正规的页面,第一眼就看到个大大的下载按钮。我习惯性直接点下去,浏览器开始转圈,进度条走到头,弹出来一个文件——名字倒是长得跟真的似的,但大小明明白白写着0字节。我当时还在想是不是网速抽风,又点了一次,还是0字节。这时候我注意到一个细节:每次我点下载按钮,页面底部会快速闪一下某个广告框,像个偷瞄一眼就跑的小贼。后来才明白,这些下载站的套路其实挺常见,真正的下载链接藏得深,或者干脆就不是直接给文件,而是先弹个推广页。你要是跟我一样急着下,很容易就踩雷。

说说我后来怎么解决的。我试了三次不同页面的下载按钮,两次给我0字节文件,一次蹦了个根本不是用友的玩意,一个叫“速运通”的软件。越搞越气,索性手动去查浏览器下载记录,发现这几个0字节文件的后缀名都是乱七八糟的,像什么.tmp或者.js,明显不是正经安装包。这时候我才开始认真看页面,发现真正能用的下载链接,往往藏在页面中间那些毫无存在感的文字里,比如“点击这里开始下载”这种小字,而且前面还有个复选框打着“我已阅读协议”。我勾上之后,点那个小字,才真正开始下安装包。这下文件大小正常了,几百兆,一下就下好了。

安全纯净无广告·无捆绑全平台支持Win·Mac·手机持续更新紧跟官方新版本

解压时报错,才想起校验哈希值

文件下载成功了,我长舒一口气,直接双击准备解压。结果WinRAR弹了个警告,说文件头损坏,里面可能少东西。我当时心里咯噔一下,难道又白下了?但看了眼文件大小,跟官网标的差不多,应该不是下载过程中截断的问题。我后来想到一个验证方法,就是用校验工具核对文件的MD5或者SHA1值。正版的用友安装包,在官方或者可靠下载站上一般都会给个校验码,短的一串字母数字,长的也有。

我打开之前常用的HashCheck工具,把刚下的exe拖进去,几秒钟出来一串码。然后回到下载页面,找校验信息。找了半天,在页面最底下“常见问题”折叠栏里,还真藏着一段SHA1值,不过排版乱得很,还跟页面背景色差不多。我复制出来一对比,完全对不上。这下清楚了,文件确实在传输过程中被改过,或者服务器上存的就是坏的。没办法,只能换一个源重下。这次我留了个心眼,找了个第三方镜像链接(也是那页面给的),下载后再次校验,这回都匹配上了,解压也一路顺畅。

安装包乱放,管理员权限卡你一下午

解压出来一堆文件夹和exe,我习惯性地放到桌面,然后双击setup.exe。系统弹了个UAC提示,我点了“是”,结果安装程序闪一下就没了,什么反应都没有。我还以为是系统兼容性问题,又右键以管理员身份运行,这次倒是出来了安装界面,但下一步按钮一直是灰色,点不了。我翻来覆去查百度,试各种方法,什么关闭杀毒软件、改注册表、甚至重启电脑,全没用。

后来一个同事路过,看了一眼,问我是不是解压路径有问题。我一看,解压出来的文件名里带着空格和中文,路径从桌面开始又长又乱。同事说用友这种老牌企业软件,安装程序对目录很敏感,最好直接弄到D盘根目录下,文件夹名用纯英文,别用“T3安装包”这种中文名字。我照做,把整个文件夹剪切到D:\yonyou_T3下,再次双击安装程序,下一步按钮立马可点了。就这么一个小细节,白白折腾了我两小时。从那以后,我所有的企业软件安装包,都规定自己放一个纯英文目录的固定位置,再也没出过类似的问题。

数据库安装卡在“挂起”,实际是端口占用

安装用友T3到一半,系统提示“需要先安装SQL Server数据库”,我点确定,弹出一个窗口,直接卡在“setup support files”这一环节,进度条走了一点就不动了。我关机重试了好几回,都一样。进管理工具的服务列表看,SQL相关的服务都没启动,手动点启动也失败。这时候我用netstat命令查了一下端口,发现1433端口正被一个叫“msftesql”的进程占着。这破事我以前碰到过,是之前卸载不干净留下的残余。

解决方案倒不复杂,但得小心。我打开命令提示符(管理员模式),输入net stop mssqlserver先把残留服务停掉,然后找注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,把跟SQL相关的多余键值删掉——这个操作千万别乱动,删错了可能会导致系统出毛病。删干净后,再重新安装,端口没被占,一路跑到安装完成。还有一次,是防火墙忘关了,导致数据库安装后连不上,后来又得临时关防火墙、配规则,挺麻烦。所以现在每次装用友,我都先关上Windows防火墙和第三方安全软件,等装完再开。

加密狗驱动折腾三天,最后换了个USB口

软件装好后,插上加密狗,系统提示发现新硬件,然后自动装驱动,装完显示设备已就绪。但打开用友系统管理,一直提示“找不到加密狗”或者“未检测到许可”。我以为是驱动问题,去设备管理器里卸载再扫,还是不行。换了几台电脑试,有的能用,有的不能用,玄学得很。

最后查到用友论坛上一个老帖子,说这种问题多半跟USB接口的供电模式有关。我平时习惯用机箱前面的USB口,方便是方便,但有些前置口电压不稳,加密狗这种低功耗设备容易认不出。我试着把加密狗插到机箱背面、主板上直接集成的USB口上,再打开系统管理,这次奇迹般认出来了。后来防患于未然,我又在设备管理器里把USB选择性暂停设置关掉(电源管理那项),避免系统省电时把加密狗休眠掉。这招到现在都很灵。

版本兼容搞不清,装了32位系统64位版本的坑

有次客户电脑是64位Windows 10系统,我按常规下了个x64版本的用友T3安装包。装完运行,程序的主界面能打开,但一旦点模块功能,就报错“应用程序无法正常启动0xc000007b”。我一度以为是DirectX或者VC++运行库没装全,各种补丁打了一圈,没用。差点让他们重装系统了。

后来无意中看到一条技术文章,说用友T3的x64版本其实并不原生支持64位操作系统,它只是在32位核心上套了个壳。最好直接装它的32位版本,在64位系统上用兼容模式运行。我卸载后重下32位安装包,右键属性兼容性里勾上Windows 7,禁用视觉主题,再安装,一点问题没了。这个经验之后,我记着:下载像用友这类传统企业软件时,优先拿32位版本,哪怕你用的是64位系统。而且千万别只看文件名带X64就觉得铁定能用,官网页面里的小字说明,或者技术论坛里的旧帖,才是真正有用的线索。

清理注册表残留,比重装省事很多

用友装不好、卸不干净、重装还报错的,我碰到过好几回了。最严重的是一次,控制面板卸载了,但重新装的时候立马提示“检测到更高级版本,拒绝安装”。去删Program Files里的文件夹,删是删掉了,再装还是报错。最后只能祭出系统自带安装清理工具msicuu2,但也不好使,残留的信息全藏在注册表里。

我具体操作是:打开regedit,先备份一个注册表以防万一。然后导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall,把跟用友相关的条目都删掉。接着去HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node下找同样路径,这里是64位系统上32位软件的注册表信息,也搜一遍删干净。做完这步,重启电脑,重装用友就干干净净了。注意别乱删别的软件条目,不然别的程序会崩。我不止一次用这招帮同事解决“装不上”的顽疾,比重装系统快太多了。