iis导出excel com组件条用错误怎么办
一、发布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:WindowsSysWOW64configsystemprofile和C:WindowsSystem32configsystemprofile文件夹里面新建Desktop文件夹.(具体原因不详).看是否能解决问题
最后,关于用户下载excel 文件直接退出系统的bug,需要添加:
XXX代表用户名,***代表用户密码(都是系统登录的),必须设置(貌似可以不用设置,但是之前测试成功过,后来就再也没有成功过了),所以还是给计算机设置一个登录密码吧,毕竟是要做服务器的电脑,没有密码,情何以堪!!!!
以上便完成了IIS配置带有office下载和上传文件的必要操作。(亲测有效哦!!!实验了n太电脑,都没有问题,从SERVER 2008,到win7 到win8 再到win8.1).