C#使用Office功能80070005错误的处理方法
2016-11-29 22:42
323 查看
C#使用Office功能
在C#经常会用到office的功能,例如使用excel计算功能和生成word文件等。这些功能用代码实现很简单,在本地运行调试运行成功,一旦发布到服务器上这些功能可能会出现各式各样的问题,一般情况下会报“错误代码就是80070005(检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005)”这样的错误,怎么回事呢?
归根到底就是服务器上office访问权限的问题。
解决方法很简单:
1.一般情况下服务器Office权限应该是配置好的,Office安装完成就设置了这些(但安装要确保选择了为asp.net提供支持),那么解决方法简单了,设置网站应用池的标识即可,标识选择LocalSystem:
Ps:一般是可以设为LocalSystem或者NetworkService两种用户的,但如果先执行这步那么只可以设置LocalSystem,走过2、3步的之后即可两种用户都可设置。
2.如果这种方式没有解决,就要进入第二步:
1)..在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
2).依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”
3).在”DCOM配置”中找到”Microsoft Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应用程序属性”对话框
4).点击”标识”标签,选择”交互式用户”
5).点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加一个”NETWORK SERVICE”用户(注意要选择本计算机名或亦可添加其他需求的用户比如Everone用户等),并给它赋予”本地启动”和”本地激活”权限
6).依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK SERVICE”用户(或亦可添加其他需求的用户比如Everone用户等),然后赋予”本地访问”权限.
7).之后重复第1步操作。
3.有些服务器是64位版本的,因此打开DCOMCNFG之后,找不到项“Microsoft Excel 应用程序”,因为DCOMcnfg是32配置,在64位系统下能完全被支持,打开32位的DCOMCNFG的方式:
1).运行:mmc -32
2).打开“文件”-“添加或删除管理单元”-选择组件服务-点击添加-确定。
3).可以在DCOM组件中找到Microsoft Excel Application了。
4).之后重复第2步,第1步。
到此,问题基本解决,功能可以正常使用了。建议将office版本升级到最新,因为最新版本的office对功能支持的更完善,一些计算上缺陷已经修复。
在C#经常会用到office的功能,例如使用excel计算功能和生成word文件等。这些功能用代码实现很简单,在本地运行调试运行成功,一旦发布到服务器上这些功能可能会出现各式各样的问题,一般情况下会报“错误代码就是80070005(检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005)”这样的错误,怎么回事呢?
归根到底就是服务器上office访问权限的问题。
解决方法很简单:
1.一般情况下服务器Office权限应该是配置好的,Office安装完成就设置了这些(但安装要确保选择了为asp.net提供支持),那么解决方法简单了,设置网站应用池的标识即可,标识选择LocalSystem:
Ps:一般是可以设为LocalSystem或者NetworkService两种用户的,但如果先执行这步那么只可以设置LocalSystem,走过2、3步的之后即可两种用户都可设置。
2.如果这种方式没有解决,就要进入第二步:
1)..在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
2).依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”
3).在”DCOM配置”中找到”Microsoft Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应用程序属性”对话框
4).点击”标识”标签,选择”交互式用户”
5).点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加一个”NETWORK SERVICE”用户(注意要选择本计算机名或亦可添加其他需求的用户比如Everone用户等),并给它赋予”本地启动”和”本地激活”权限
6).依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK SERVICE”用户(或亦可添加其他需求的用户比如Everone用户等),然后赋予”本地访问”权限.
7).之后重复第1步操作。
3.有些服务器是64位版本的,因此打开DCOMCNFG之后,找不到项“Microsoft Excel 应用程序”,因为DCOMcnfg是32配置,在64位系统下能完全被支持,打开32位的DCOMCNFG的方式:
1).运行:mmc -32
2).打开“文件”-“添加或删除管理单元”-选择组件服务-点击添加-确定。
3).可以在DCOM组件中找到Microsoft Excel Application了。
4).之后重复第2步,第1步。
到此,问题基本解决,功能可以正常使用了。建议将office版本升级到最新,因为最新版本的office对功能支持的更完善,一些计算上缺陷已经修复。
相关文章推荐
- c# 视频开发中使用VFW功能的编解码的处理思路
- C#使用预处理SQL语句访问MySQL的方法(Parameter)
- 使用SharePoint 2010 导入电子表格功能的错误处理
- 在Word 宏 VBA循环中使用on error的错误处理方法
- C# 操作Excel是遇到的80070005错误-解决方法
- [转]使用C#进行图像处理的几种方法
- Jquery使用$.Post方法,本地可以,服务器错误的处理方法...
- Linux系统平台下关于GCC编译及使用的方法(-Werror,它要求GCC将所有的警告当成错误进行处理 )
- WinCE中使用C#时使用WndProc方法的处理
- 在.NET中发送邮件,使用回执功能中遇到问题的解决方法[在NOTES服务器上,C#,.NET2.0环境]
- word2007的问题 此错误通常是由宏安全性设置造成的。如果您知道宏来自您信任的来源,则可将宏安全性设置更改为允许启用宏。宏安全性设置的更改方式取决于您使用的 Microsoft Office System 程序 解决方法
- 使用C#进行图像处理的几种方法
- C#中使用Split分割字符串后,空格处理方法
- [转]使用C#进行图像处理的几种方法
- JavaScript的错误处理之onerror事件的使用方法
- 使用COM来进行WORD或EXECEL导出操作,出现错误: 80070005 解决方法
- c# datagridview 单元格处理,功能使用大全
- C#中异常的处理方法 try{} eatch{} finally{} 的使用
- Android中AVD的使用以及错误处理方法
- 使用SharePoint 2010 导入电子表格功能的错误处理