• 用automation做报表操作权限


    当我们导出的Excel文件要求严格的格式时,就需要把Excle做成模板,在导出时首先复制原来做好的模板,然后在模板上操作Excel就会保留原来的格式,但是在C#操作文件时会遇到一些权限上的问题,我们这里以操作Excel为例说明一下:

    首先配置DCOM:解决操作权限问题,具体步骤如下:

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

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

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

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

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

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

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

    注:在XP系统中还要添"加机器名/ASPNET"用户的上述权限。

    其次要解决部署在Window Server 2003 上Excel.exe进程问题

    在操作完Excel以后,每次就会留下一个Execl.exe进程,无论如何也关闭不了,包括用垃圾回收等,原因我也不知道,但是在其他服务器操作系统和xp操作系统上不存在这种问题。

    解决此类问题,有一个方法可以借鉴,就是杀死进程的方法,但是有一定的风险,要注意,具体方法如下:

    操作进程有一定的风险,所有首先要有此类权限,添加权限方法,在web.Config里面添加权限<identity  impersonate="true"   userName="登录名"   password="密码 "/>

    杀死进程方法

    public static void KillProcess(string processName)

            {

                System.Diagnostics.Process myproc = new System.Diagnostics.Process();

                //得到所有打开的进程

                try

                {
                   foreach (Process thisproc in Process.GetProcessesByName(processName))

                    {
                        if (!thisproc.CloseMainWindow())

                        {

                            if(thisproc!=null)

                            thisproc.Kill();

                        }               


                    }

               }
                catch (Exception Exc)

                {
                    throw Exc;
                }

            }  

    在操作完Excel后,调用杀死进程方法就可以了,下一次就会正常调用。

  • 相关阅读:
    MFC程序执行过程剖析
    不同位数操作系统的 数据长度
    测试:safenet提供的CheckKey函数 内存泄漏。具体来说是句柄.
    关于更改项目名称
    内存泄漏相关的
    美化MFC 之调整静态文本的颜色 字体。 用于添加公司标题 联系方式 口号等数据
    DAVINCI DM365-DM368开发攻略——开发环境搭建(DVSDK4.02)
    Removing Unnecessary HTTP Headers in IIS and ASP.NET 在ASP.Net和IIS中删除不必要的HTTP响应头
    Implementing Singleton in C#
    WEBAPI VS WCF微软随.NET 4.5发布新REST API框架
  • 原文地址:https://www.cnblogs.com/arraylist/p/1501320.html
Copyright © 2020-2023  润新知