日期:2014-05-19  浏览次数:20466 次

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

------解决方案--------------------