当前位置:编程学习 > C#/ASP.NET >>

IIS8 不能打开Word文档?

因工作需要,实现了asp.net向Word(word2010)中写数据的功能,开发时使用vs2010的Visual Studio开发服务器,运行什么的全部正常。但后来使用Win8的IIS8时,意外发生了:打开Word文档,总是返回null。
代码大概如下:
Word.Application WordApp = new Word.ApplicationClass();
Word.Document doc = WordApp.Documents.Open(targetFilename);  // 在IIS8中这个地方返回为null
try
{
// 具体的操作
// ......
}
finally
{
doc.Save();
doc.Close();
WordApp.Quit();
doc = null;
WordApp = null;
}
我估计80%的原因是权限的问题,但尝试了多种方法都不行。我进行的尝试包括:
1. 连接池中设置标识为LocalSystem
2. web.config中设置<identity impersonate="true" userName="管理员" password="管理员口令"/>
3. windows 2003中在dcom中给word设置权限的方法,在win8+word2010中dcom中找不到word应用程序,没有设置。
4. 给虚拟目录以users组全部的权限

各位大牛,谁能指点一下呀,急呀。
IIS Word win8 --------------------编程问答-------------------- 这应该是window service或者桌面程序的职责,不是asp.net程序应该干的。你应该跨进程去调用你的windows service或者桌面程序。 --------------------编程问答-------------------- to sp1234:
能具体说一下按要怎么实现吗?
我这样做是基于:
1. 我之前在windows 2003在使用word2003成功做过同样的操作。
2. 同样的代码在vs2010的Visual Studio开发服务器中运行正常。
--------------------编程问答-------------------- 目录遇到相同问题,在我本机的IIS上发布,只要加了模拟身份就没有问题,但是在服务器上发布就不行了~ --------------------编程问答-------------------- 别一种方法:

控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档

之后

单击属性打开此应用程序的属性对话框。  

2. 单击标识选项卡,然后选择交互式用户。 

3.单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后

自定义->编辑->添加ASP.NET账户和IUSER_计算机名

* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。 

13. 确保允许每个用户访问,然后单击确定。 

14. 单击确定关闭 DCOMCNFG。 


但是在组件服务中根本找不到Word的服务。。。 --------------------编程问答-------------------- 问题已经解决,彻底卸载清理Office后重新安装,在组件服务中就可以找到Microsoft Offfice Word了,再按上面的方面就OK了 --------------------编程问答-------------------- 一般下 asp.net的功能 跟IIS好像没太大关系 你这样的问题 一般都是权限问题..

建议用第三方组件 --------------------编程问答-------------------- asp.net需要交互账户权限,impersonate="true"是必须的。另外asp.net调用word一般都会出现word容易崩溃、出现死进程,微软官方声明不主张在web服务器上用这种技术。此类动态输出数据到word、excel的问题可以尝试用PageOffice,这个第三方组件不需要在服务器上安装office、也不需要任何特殊配置,不会出现崩溃、死进程等阻塞页面的问题,同时调用代码也比较简单易用 --------------------编程问答-------------------- 建议楼主查询下 Aspose.words 这个第三方控件,可以输出word,读取word,另存为html ,等等。功能非常强悍。而且它是一个dll,直接引用过来就行。不需要打开word程序。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,