天天看点

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

背景:ITOO项目如火如荼的进行着,各种问题“应运而生”。之前遇到的,现在刚刚接触的,都蹦出来了,再加上项目中有许多“新面孔”——WCF、MVC、EF等等,当时都不知道是干啥用的,一个多月的学习,确实让我增长了不少见识。ITOO这个庞大的云平台系统中有五个小系统——基础、权限、新生、考评、成绩。成绩系统是这五个系统中最小的一个,业务逻辑简单,子模块少。但是里面的问题一点都不少,前辈们为我们留下宝贵的“线索”,需要我们一一探索。当然这也是一个非常宝贵的机会,让我们有机会搜罗到很多宝贵的经验。

一、问题出世

    我们成绩系统中教师端有一个教师留作业模块,里面有一个预览功能,这个功能真是强大,上传一个word文件就能转成PDF格式,然后显示在界面上,然后再转成SWF格式的文件存在数据库中。但是这个功能有个缺陷:在本地能上传预览,但是一提交到服务器上,这个功能就报废了。

展示一下我们强大的FlexPaper插件的效果:

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

    多路英雄的帮忙(感谢王鹏师哥的提点,感谢胡玉洋师哥的远程帮助,感谢华华小童鞋的参与),最后找到问题的症结,如图:

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

    这个问题找到真的很不容易,因为需要在你自己的本地发布,然后运行,再设置断点,一步步跳转找出来的,不发布,它就一直“避重就轻”,不报错还运行不成功。说到发布问题,这是个比较严重的问题,当时做牛腩新闻发布系统的时候,在发布上花费的时间比较少,好像一遍就成功了。现在遇到发布的问题了,没有经验,自然就慢了许多,上网查,找同学调,最后的最后,终于成功啦!

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

。所以“欠下的总是要还的”还是很有道理的!今天的主角是上面的问题,发布问题后期有机会再好好展示。

    问题找到了,上网找方法吧!网上对这个问题提供了很多的方法,自己尝试并组合各种方法中的一种方法,仅供参考:

二、 解决方案制止

1:在服务器上安装office的Word软件.

2:在"开始"->"运行"中输入 dcomcnfg 启动"组件服务"

3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

4:在"DCOM配置"中找到"Microsoft Word 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框.

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

5:点击"标识"标签,选择"交互式用户"

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"everyone"用户,并给它赋予所有权限。

7:依然是"安全"标签,在"访问权限"和“配置权限”上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"everyone"用户,然后赋予所有权限。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

三、问题又横生

    这样,我们便配置好了相应的Word的DCOM权限。运行我们的程序,虽然上传上去了,而且还能预览部分内容,但是再打开服务器,出现了下面恐怖的画面:

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

继续上网搜索,办法总比困难多,终于在“度娘”的帮助下,渡过难关。具体解决方法如下:

四、解决方案再次出手

    “度娘”告诉我说:出现这中问题的原因可能有两种:一是要打开的工作簿或者文档中含有VBA代码,而使用者Office设置的宏安全性不允许使用宏或者不允许VBA代码操作;二是Office安装时没有安装Visual Basic for Applications。

    对比两种方法的安全性和可行性,果断选择第二种。

1、打开控制面板,选择【卸载程序】。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

2、找到当前的Office版本,然后选择【更改】。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

3、选择【添加或删除功能】,然后点击【继续】。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

4、点击【Office共享功能】的加号打开选项。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

5、在【Office共享功能】中找到【Visual Basic for Applications】。

6、点击下拉按钮,选择【从本机运行】,然后点击【继续】进行安装即可。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

    再次运行我们的程序,打开服务器,桌面干干净净。这个问题总算成功了,没有白费心血。

    以上的解决方法只解决了我们预览功能的部分问题,现在我们的FlexPaper只能预览出图片,文字还是预览不出来,这个问题如果后期有机会还会解决的。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

五、魔高一尺,道高一丈

1、办法总比困难多,抱着这个问题肯能能解决的态度,你一定能收获很多。

2、欠下的总是要还的,踏踏实实的走好每一步,哪里缺,哪里补,我们的最终目标是无懈可击,现在的踏实成就未来的完美。

3、不要害怕问题的出现,因为那是你成长路上的垫脚石,没有它们,你也不可能走得更高。

继续阅读