传统企业的项目开发,采用技术都还比较陈旧,项目中涉及excel部分,采用office组件导出excel,进程采用强杀方式,涉及web服务器权限部分整合如下,均来自博客园。
.NET导出Excel遇到的80070005错误的解决方法: 原文出处
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错。
具体配置方法如下:
1:在服务器上安装office的Excel软件.
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框
(这里有的人打开之后找不到Microsoft Excel应用程序,是因为有的版本是64位,有的是32位,如果是32的OFFICE可以通过comexp.msc -32来打开组件服务)
5:点击"标识"标签,选择"交互式用户"
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
通过上述的方法之后,我遇到过依然报这个错误的情况,我的做法是按照上面的步骤,只不过再新增的用户是EVERY ONE ,这样,问题就解决了
ASP.NET使用WEB关闭进程process.Kill(); 的时候,出现拒绝访问的提示解决方案 原文出处
System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < process.Length; i++)
{
string a = process[i].ProcessName.ToString();
if ((process[i].ProcessName == "CommandSend") || (process[i].ProcessName == "CommandSend.vshost"))
{
process[i].Kill();
}
}
在web.config中加入
<identity impersonate="true" userName="Administrator" password="123456" />