昨天遇到的关于asp.net关于office dll因版本问题而导致的bug,经测试在VS调试环境下可顺利运行。发布到服务器上,在客户端访问时,又有新bug了。
bug:
内存不足,请现在保存文档。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: 内存不足,请现在保存文档。
分析:
经查阅资料http://www.cnblogs.com/skylaugh/archive/2012/09/28/2707603.html,发现问题出在IIS对服务器office操作权限问题。
解决:
1、在控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCOM,找到office的word或excel(取决你系统种使用哪款),右键属性:
点击"标识"标签,选择"交互式用户" 6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORKSERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限. 7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORKSERVICE"用户,然后赋予"本地访问"权限.
2、在项目的webconfig.xml文件中使用身份模拟,在<system.web>节中加入
<identity impersonate="true" userName="你的用户名"password="密码"/></system.web>。