狂送分(100):关于使用Microsoft.Office.Interop.Word.ApplicationClass的问题

MIZYY 2007-03-14 01:55:01
我的程序需要实现一个功能:将服务器中的word文档转化成html格式的文件。
程序中引用了com组件:Microsoft Office 11.0;Microsoft Word 11.0 Object Library两个组件
相应代码如下:

Microsoft.Office.Interop.Word.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationClass();
Type wordType = word.GetType();
Microsoft.Office.Interop.Word.Documents docs = word.Documents;
// 打开文件
Type docsType = docs.GetType();
object fileName = "d:\\tmp\\aaa.doc";
Microsoft.Office.Interop.Word.Document doc = (Microsoft.Office.Interop.Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] {fileName, true, true});
// 转换格式,另存为
Type docType = doc.GetType();
object saveFileName = "d:\\tmp\\aaa.html";
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,null, doc, new object[]{saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML});
// 退出 Word
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod,null, word, null);
//垃圾回收
GC.Collect();
GC.WaitForPendingFinalizers();

权限设置如下:
1.我已经将DCOM配置中的Microsoft word文档的属性中身份验证级别设为无;加入了应有的用户权限(SYSTEM;INTERACTIVE;Everyone;Administrators;IUSR_<machinename>;IWAM_<machinename>);运行该程序的帐户也选择了交互式用户
2.文件夹的权限也都是读写都可以

操作系统是:Windows 2003
经过测试结果如下:
如果我没有安装Windows2003的补丁,则程序运行正常,功能可以实现;
如果我安装Windows2003的补丁以后,程序则不能执行,系统报错,错误信息为:“因为配置类型不正确,系统无法开始服务器进程。请检查用户名和密码。”

各位高手,有哪位也遇到过这样的情况,能否给于指教,多谢了!!
...全文
2973 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
winner2050 2012-04-28
  • 打赏
  • 举报
回复
用这玩意经常有权限问题,

在配置文件里面写上管理员账号密码,一了百了。
一缕阳光 2012-04-28
  • 打赏
  • 举报
回复
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
luobing261314 2011-10-20
  • 打赏
  • 举报
回复
给分吧!呵呵!
xiaoniqiu_51 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 net_lover 的回复:]
或者
<identity impersonate= "true "
userName= "Administrator "
password= "password "/>
[/Quote] 我用了此方法解决了该问题
xiaoniqiu_51 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 subasan 的回复:]
mib23()(☆☆☆☆☆)


是正解。。我也遇到过这种情况。。。
用此法解决了。。
[/Quote] 我用此方法,问题依旧......
wu9xia 2008-06-13
  • 打赏
  • 举报
回复
顶,不懂,现在也是在写一个word导出的项目,不知道怎么做,郁闷!
bottoline 2007-06-08
  • 打赏
  • 举报
回复
帮顶吧.

我也在整有关OFFICE的问题.
yangaiyuan 2007-05-05
  • 打赏
  • 举报
回复
jf
subasan 2007-05-05
  • 打赏
  • 举报
回复
mib23()(☆☆☆☆☆)


是正解。。我也遇到过这种情况。。。
用此法解决了。。
孟子E章 2007-03-16
  • 打赏
  • 举报
回复
不安全可以采用加密的方法
参考
http://www.microsoft.com/china/technet/security/guidance/secmod15.mspx
http://www.jztop.com/dev/aspnet/a116166395432599.html
MIZYY 2007-03-15
  • 打赏
  • 举报
回复
顶一下,有知道的吗?
MIZYY 2007-03-14
  • 打赏
  • 举报
回复
TO 孟子:
<identity impersonate="true"
userName="Administrator"
password="password"/>
这个方法我刚试过,也是不可行的,错误依然存在!
MIZYY 2007-03-14
  • 打赏
  • 举报
回复
to 孟子:
如果我要是<identity impersonate="true"
userName="Administrator"
password="password"/>
这么写的话不是太不安全了吗?
hy_lihuan 2007-03-14
  • 打赏
  • 举报
回复
学习
孟子E章 2007-03-14
  • 打赏
  • 举报
回复
或者
<identity impersonate="true"
userName="Administrator"
password="password"/>
孟子E章 2007-03-14
  • 打赏
  • 举报
回复
web.config里设置

如果是在asp.net 下使用的话,要记得在 <system.web>中添加<identity impersonate="true"/>
否则就会出现 “异常详细信息: System.UnauthorizedAccessException: 拒绝访问“。
MIZYY 2007-03-14
  • 打赏
  • 举报
回复
再顶
MIZYY 2007-03-14
  • 打赏
  • 举报
回复
我的服务器不是域控制器
showfray 2007-03-14
  • 打赏
  • 举报
回复
你的服务器是否已安装了AD?

若有请相应修改Windows 身份验证试试.
chuxue1342 2007-03-14
  • 打赏
  • 举报
回复
不知!顺便问问EXCEL怎么转换呢?
加载更多回复(7)

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧