附件预览问题(之三)
金蝶云社区-czkdxjh
czkdxjh
1人赞赏了该文章 2571次浏览 未经作者许可,禁止转载编辑于2015年10月09日 21:25:53

前两帖的问题场景请各位同学移步至下面的链接,老师请直接看最后面的问题。
之一: https://vip.kingdee.com/article/31656
之二: https://vip.kingdee.com/article/31699

小结一下:问题关键是文件服务器上先安装了office2013,卸载后安装office2010,这种情况注 册表中记录的Excel和Word的CLSID、APPID有所不同,虽不影响office使用,但Cloud的附件预览工具swftools不能识别这个不同并导致不能正确调用office组件。

如有同学像我一样先2013再2010,然后无法设置office的dcom组件权限,可按以下步骤尝试解决:
1、文件服务器注册表中找到[HKEY_CLASSES_ROOT\AppID\{00020906-0000-0000-C000-000000000046}],把默认值改成“Microsoft Word 97 - 2003 文档”。
2、文件服务器注册表中找到[HKEY_CLASSES_ROOT\AppID\{00020812-0000-0000-C000-000000000046}],把默认值改成“Microsoft Excel Application”。
3、将下面蓝色内容保存为注册表文件并在文件服务器上写入注册表:
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\CLSID\{00020827-0000-0000-C000-000000000046}]
[-HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00024505-0015-0000-C000-000000000046}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{00024505-0015-0000-C000-000000000046}]
[HKEY_CLASSES_ROOT\AppID\EXCEL.EXE]
"AppId"="{00020812-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Wow6432Node\AppID\EXCEL.EXE]
"AppId"="{00020812-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020827-0000-0000-C000-000000000046}]
"AppID"="{00020812-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\AppID\EXCEL.EXE]
"AppId"="{00020812-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{00020827-0000-0000-C000-000000000046}]
"AppID"="{00020812-0000-0000-C000-000000000046}"


[-HKEY_CLASSES_ROOT\CLSID\{84F66100-FF7C-4fb4-B0C0-02CD7FB668FE}]

[HKEY_CLASSES_ROOT\AppID\WINWORD.EXE]
"AppId"="{00020906-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Wow6432Node\AppID\WINWORD.EXE]
"AppId"="{00020906-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{84F66100-FF7C-4fb4-B0C0-02CD7FB668FE}]
"AppID"="{00020906-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\e6afe89451e1894439f8d270cb592ffd]
"27AE7A6000F035D48AC15A9D52171114"="02:\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\MSSQL10_50.MSSQLSERVER\\MSSearch\\Filters\\CLSID\\{00020906-0000-0000-C000-000000000046}\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\AppID\WINWORD.EXE]
"AppId"="{00020906-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{84F66100-FF7C-4fb4-B0C0-02CD7FB668FE}]
"AppID"="{00020906-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSearch\Filters\CLSID\{00020906-0000-0000-C000-000000000046}]

这些注册表内容是通过比较直接安装office2010的服务器和先2013后2010的服务器的注册表内容差异整理出来的,各位也可通过Registry Workshop这个工具自行比较。
以上步骤完成后,按照其他帖子里的方法设置dcom权限以及磁盘目录权限后就可以正常在线预览office文档的附件了。

BUT BUT BUT 还有问题 !
word附件以及excel附件不能太大(貌似几百K没问题,具体多大没测试),否则仍然不能在线预览,会报错“文档未完成转换,请稍后再试”。
查看\Program Files (x86)\Kingdee\K3Cloud\FileService\App_Data\Log\中的log文件,其中没有完整记录大附件的转换过程,
目录\Program Files (x86)\Kingdee\K3Cloud\FileService\TempSWF\下也没有生成与大附件对应的swf文件,貌似遇到大附件后出错中断了swf转换。
这个问题又要怎么搞???