zoukankan      html  css  js  c++  java
  • Excel导出实例(打开模板,写信息后另存为新excel文件) 在部署时候出问题Windows7 64 bit 下解决:检索 COM 类工厂中 CLSID 为 {0002450000000000C000000000000046} 的组件时失败

    一、普通版本步骤

      1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"

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

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

      4.点击"标识"标签,选择"交互式用户"

      5.点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限

      6.依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.

    二、 

     而问题出在64位版本的机器上,因为打开DCOMCNFG之后,找不到项“Microsoft Excel 应用程序”,因为DCOMcnfg是32配置,在64位系统下能完全被支持,所以正好挂彩。

      于是查阅到了打开32位的DCOMCNFG的方式:

     1.运行:mmc -32

      2.打开“文件”-“添加或删除管理单元”-选择组件服务-点击添加-确定。

      3.可以在DCOM组件中找到Microsoft Excel Application了。

     

      于是用最上面的方式配置完成,跑网站,一样出错。

      再检查,还有内容没有完成设置。

      检查IIS7的设置,最后确定还需要设置应用程序池的标识,把此网站的AppPool的标识要设置为LocalSystem或者NetworkService,问题解决。

    以上完成后,还出现错误:

    System.ComponentModel.Win32Exception: 拒绝访问

     如下代码:

    foreach (System.Diagnostics.Process thispro in System.Diagnostics.Process.GetProcessesByName("EXCEL"))
    {
        if (!thispro.CloseMainWindow())
        {
            thispro.Kill();
        }

    } 

    问题描述,没有对应的权限; 

     解决方法:

     在web.config文件添加: 

    <system.web>
        <!-- 系统配置信息:权限控制 -->

        <identity impersonate="true" userName="administrator" password="系统密码"/>

    以上完成后,可以完全自由的导出excel;!!! 

  • 相关阅读:
    放大镜
    简单拖拽加边界处理加轨迹返回
    事件委托
    数组的方法
    数据处理
    数组去重
    字符串的操作方法
    函数的递归调用
    选择排序、冒泡排序
    Linux—shell中$(( ))、$( )、``与${ }的区别
  • 原文地址:https://www.cnblogs.com/hyd309/p/2618247.html
Copyright © 2011-2022 走看看