asp.net中调用word的权限问题,弄了一天了还是搞不定
首先说明环境:winxp、office2003、.net2005
在网上找了很久,已经设定了组件服务--》microsoft word 文档 的安全,已经为启动和激活权限 、访问权限加了Everyone用户并已经设为最大权限。
现在的问题是:如果把标识设成了交互式用户。在 Word.Application WordApp = new Word.ApplicationClass()时就会出现:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。这个应该是权限问题(查看了windows任务管理器,是Administrator用户也就是当前登陆用户,启动了winword.exe,郁闷啦,超级用户还有问题)。试了很多,只要是交互用户在这里就出错。
如果把标识设成启动用户,并且在web.config里设定 <identity impersonate= "true "/> ,那么Word.Application WordApp = new Word.ApplicationClass()可以通过,但在下面创建档:Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref ReadOnly);(或者是WordApp.Documents.Open()时)就会出现“无法打开宏储存”的错误。试了很多,只要是启动用户在这里就通不过。
哪位哥哥给个解决办法。谢了先!
[解决办法]
别人的答案
web中打开word为什么老是提示无法打开宏储存?
为用户没有在服务器端运行Word的权限,应在服务器端做如下操作:
1.开始--运行--dcomcnfg--Microsoft Word 文档--属性--身份标识--交互式用户
否则会出现“消息筛选器显示应用程序正在使用中”的错误
2.开始--运行--dcomcnfg--Microsoft Word 文档--属性--安全性--使用自定义访问权限--添加EveryOne用户
或者dcomcnfg--Microsoft Word 文档--属性--安全性--使用默认访问权限
dcomcnfg--默认安全机制--默认访问权限--添加EveryOne用户
否则会出现“拒绝访问权限”的错误,或者是无法打开宏存储
[解决办法]
帮顶
[解决办法]
学习
[解决办法]
我测试没有报错 windows 2003
object missing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.ApplicationClass WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
[解决办法]
UP
[解决办法]
用word从来没有碰到过
顶
[解决办法]
没碰到过...
[解决办法]
注意word的版本
[解决办法]
同意楼上,你开发时候用的是word2003,在服务器上装的时候也要用word2003。
[解决办法]
一样没碰上问题...
[解决办法]
出现“拒绝访问权限”的错误,或者是无法打开宏存储
还是权限没有设置好。
xp上好像是aspnet账户
2003是Network Service账户要有运行word的权限
[解决办法]
使用身份模拟应该可以解决权限问题.
[解决办法]
我用的也没有问题。windows2003+word2003+net1.1.4322
接孟子:
2.开始--运行--dcomcnfg--Microsoft Word 文档--属性--安全性--使用自定义访问权限--添加EveryOne用户
或者dcomcnfg--Microsoft Word 文档--属性--安全性--使用默认访问权限
dcomcnfg--安全机制--自定义访问权限--添加EveryOne用户
(加个aspnet再试)
否则会出现“拒绝访问权限”的错误,或者是无法打开宏存储
[解决办法]
EveryOne用户允许呢?
[解决办法]
http://support.microsoft.com/kb/288366/zh-cn
------解决方案--------------------
我的blog里有个设置excel的权限的,需要设的东西是一样的,你可以参考一下。
另外,服务器是win2000和2003的时候,需要设置的用户是不一样的,这个要注意。
权限设置问题确实很让人抓狂,当初项目的时候也让我郁闷了好久的,祝lz好运了
[解决办法]
这个word文档说点实在了
根本不用那个调用
我用过,除了代码多没有别的有点
你可以直接用FileStream类建立一个**.doc文件
然后向这个文件里面以UTF-8编码写字符
这样再打开后和那个效果是一样的
原来导出数据的时候我也那样建立word文档的
后来发现那样没有什么优点
如果是Excel就不行了
因为Excel有自己的格式
[解决办法]
你可以看一下我的贴子,参考一下http://community.csdn.net/Expert/topic/5468/5468082.xml?temp=.9056055;
在第二步中,你也可以先将 "iuser_机器名 "这个用户加到administrator用户组中,然后在dcomcnfg-> 组件服务-> 计算机-> 我的电脑-> DCOM配置-> Microsoft word 文档右键单击 "Microsoft word 文档 "点 "属性 ",打开 "标识 "选项卡,选择交互式用户.
另注意的是,用administrator做用户访问是不安全的;