一般情况下,不能正确导出excel的原因有三个:1、用户权限不够;2、应用程序池没有配置正确;3、导出后是在服务器还是客户端没有搞清楚。
第一步:64位兼容32位office操作配置:
由于dcomcnfg是32位配置,在64位系统下能够完全被支持。所以只需要找到打开32位的dcomcnfg的方式就可以解决找不到的问题:
1.运行:mmc -32;
2.打开“文件”-“添加或删除管理单元”-选择组件服务-点击添加-确定;
3.可以在DCOM组件中找到Microsoft Excel Application了。
找到后,对Microsoft Excel进行设置:1.右击选择属性,点击"标识"标签,选择"交互式用户";
2.点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限;
3.依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限。
4.依然是"安全"标签,在"跟改配置权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"IUSER"用户,然后赋予"本地访问"权限。
第二步:接下来是IIS7.0的配置
用户有了权限,还需要对应用程序池正确配置,不然仍然有可能导出不成功。打开iis,然后打开应用程序池的高级设置,点击进程模式,将网站的AppPool标识设置为NetworkService;打开常规,设置启动32位应用程序为true。
第三步:对文件夹权限进行设置如下图:
下面用户的所有权限都是一样的。根据图设置。
第四步:web.config设置
去掉这句配置:<identity impersonate="true" />