iis出现导入导出excel com组件条用错误的解决办法,亲测成功
2013-10-26 15:14
465 查看
一。
发布web项目的时候,访问Excel文件出现以下错误:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。跟踪了一下,结果是将记录导出为Excel表时Excel的COM组件出错,但在VS2005里面却没有任何问题,因此得出结论,肯定是权限问题,查了下资料,问题解决。
具体解决方法如下:
1:在服务器上安装office的Excel软件.
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应
用程序属性"对话框
5:点击"标识"标签,选择"交互式用户"
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加
一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK
SERVICE"用户,然后赋予"本地访问"权限.
这样,我们便配置好了相应的Excel的DCOM权限.
注意:这是在WIN2003上配置的,在2000,xp上,NETWORK SERVICE用户改为ASP.net用户。
win7
填加一个"NETWORK SERVICE"用户
检查IIS7的设置,最后确定还需要设置应用程序池的标识,把此网站的AppPool的标识要设置为LocalSystem或者NetworkService.
当系统是window server2008时(我的就是),此时IIS的默认程序池的标识应设置为LoalSystem才能够成功。
这是设置DCOM的属性.
另外在iis里面要设置你所应用的"应用程序池"的标识属性为:Network Service.
再次要在C:\Windows\SysWOW64\config\systemprofile和C:\Windows\System32\config\systemprofile文件夹里面新建Desktop文件夹.(具体原因不详).看是否能解决问题
最后,关于用户下载excel 文件直接退出系统的bug,需要添加:
<identity impersonate="true" userName="XXX" password="***"/>
XXX代表用户名,***代表用户密码(都是系统登录的),必须设置(貌似可以不用设置,但是之前测试成功过,后来就再也没有成功过了),所以还是给计算机设置一个登录密码吧,毕竟是要做服务器的电脑,没有密码,情何以堪!!!!
以上便完成了IIS配置带有office下载和上传文件的必要操作。(亲测有效哦!!!实验了n太电脑,都没有问题,从SERVER 2008,到win7 到win8 再到win8.1).
发布web项目的时候,访问Excel文件出现以下错误:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。跟踪了一下,结果是将记录导出为Excel表时Excel的COM组件出错,但在VS2005里面却没有任何问题,因此得出结论,肯定是权限问题,查了下资料,问题解决。
具体解决方法如下:
1:在服务器上安装office的Excel软件.
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应
用程序属性"对话框
5:点击"标识"标签,选择"交互式用户"
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加
一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK
SERVICE"用户,然后赋予"本地访问"权限.
这样,我们便配置好了相应的Excel的DCOM权限.
注意:这是在WIN2003上配置的,在2000,xp上,NETWORK SERVICE用户改为ASP.net用户。
win7
填加一个"NETWORK SERVICE"用户
检查IIS7的设置,最后确定还需要设置应用程序池的标识,把此网站的AppPool的标识要设置为LocalSystem或者NetworkService.
当系统是window server2008时(我的就是),此时IIS的默认程序池的标识应设置为LoalSystem才能够成功。
这是设置DCOM的属性.
另外在iis里面要设置你所应用的"应用程序池"的标识属性为:Network Service.
再次要在C:\Windows\SysWOW64\config\systemprofile和C:\Windows\System32\config\systemprofile文件夹里面新建Desktop文件夹.(具体原因不详).看是否能解决问题
最后,关于用户下载excel 文件直接退出系统的bug,需要添加:
<identity impersonate="true" userName="XXX" password="***"/>
XXX代表用户名,***代表用户密码(都是系统登录的),必须设置(貌似可以不用设置,但是之前测试成功过,后来就再也没有成功过了),所以还是给计算机设置一个登录密码吧,毕竟是要做服务器的电脑,没有密码,情何以堪!!!!
以上便完成了IIS配置带有office下载和上传文件的必要操作。(亲测有效哦!!!实验了n太电脑,都没有问题,从SERVER 2008,到win7 到win8 再到win8.1).
相关文章推荐
- Vmware Error : Vmware 暂停后恢复启动失败
- 怎么找回Win8.1(windows server 2012 R2)的双拼
- 分数拆分
- Hello Kiki(hdu3579线性同与方程)
- KVM 半虚拟化驱动
- Java Hour 10
- 递归过深,栈溢出
- a letter and a number
- Module development Template for DNN 7.0
- SCOM2012R2 APM系列(一)配置.NET应用程序监控
- 中国34个省未来发展趋势深度分析
- LeetCode题解:Anagrams
- 注重实效的程序员
- 第五章及其嵌套类
- Matlab基本函数-ceil函数
- 【多线程】——join()方法实现并行计算
- php中实现HmacMd5算法的源代码
- PHP上传图片在不同浏览器和浏览器模式中的问题及解决 image/jpeg 和 image/pjpeg
- 【面向对象】——编译时看父类,运行时看子类
- django1.5.5使用mysql