首页 新闻 会员 周边 捐助

Word文档转换PDF,VS中运行正常,但发布到IIS就转换补料

0
悬赏园豆:20 [已关闭问题] 关闭于 2015-01-23 09:48

调用Microsoft.Office.Interop.Word将Word文档转换为PDF文档,在VS中启动运行正常,但发布到IIS上就转换不了,应该是权限的问题,但不知道怎么配,求解决方法?

Euarne的主页 Euarne | 初学一级 | 园豆:157
提问于:2014-10-10 13:44
< >
分享
所有回答(6)
0

需要你的服务器也有安装兼容版本的Word系统、PDF驱动等。

519740105 | 园豆:5810 (大侠五级) | 2014-10-10 13:46

有安装,而且在开发机上的IIS也不成

支持(0) 反对(0) Euarne | 园豆:157 (初学一级) | 2014-10-10 13:48

@Euarne: 那有可能就是权限的问题了。试着把站点权限开到最大看。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-10-10 13:57

@519740105: 不能转换的已经找到方法解决了,但又出现一个问题就是转换后word的进程会一直驻留,需要好长时间才能关闭,一个驻留进程占内存4M多,如果同事转换几个文件,内存就吃不消了.....各种头疼吖,不知道有木有其他方法...

支持(0) 反对(0) Euarne | 园豆:157 (初学一级) | 2014-10-10 15:29

@Euarne: 这个是属于.net的回收机制的问题导致的。要很好的解决还是很难。

1、你可以尝试多开几个服务进程

2、你可以尝试使用WinService来实现,尽可能的通过使用同一个Word进程来执行。

3、一个进程才4M也不多,多了后,.NET的回收机制会启动,整体的影响应该不大。

另外问一句:你不能转换的解决方案是?

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-10-10 16:28

@519740105: 调用Microsoft.Office.Interop*程序集  比如转换Word就调用Microsoft.Office.Interop.Word 这种方式转换倒是没什么问题,但性能和并发方面暂时没做测试,而且显示还遇到部署到IIS后的权限等一大堆问题,表示寻找替代解决方案ing

支持(0) 反对(0) Euarne | 园豆:157 (初学一级) | 2014-10-11 16:55
0

我也遇到过这样的问题,我当时的解决方案是在服务器上面安装完整的office  word版本。然后给进程和文件夹访问权限。win 03服务器和win 08服务器权限设置不一样,你看一下子,有疑问可以帮你解决

amityat | 园豆:476 (菜鸟二级) | 2014-10-10 13:53

我本机上安装了完整版的office , 也给了文件夹权限,但一旦发布到IIS(本机)运行,就只能在进程中看到word的进程,而且会一直运行,不停的吃内存,就是不报错

支持(0) 反对(0) Euarne | 园豆:157 (初学一级) | 2014-10-10 13:59

@Euarne: 进程权限有没有给哦,用try catch试一下子

支持(0) 反对(0) amityat | 园豆:476 (菜鸟二级) | 2014-10-10 16:04

@amityat: 奇怪就是已经try catch了,但扑捉不到错误....

支持(0) 反对(0) Euarne | 园豆:157 (初学一级) | 2014-10-10 16:08

@Euarne: 服务端部署,对于核心地方都要加入日志记录,如果catch不到,那进程肯定“死了”,为什么我要打引号,可能假死,出现这样的情况,你应该显示Dispose,或者垃圾回收。由于office是com组件, 不在托管池,另一方面,说实话,文件大一点,慢的让人忍受不了,还经常报错,可能是我水平太低,你参考下这个 http://www.cnblogs.com/xiaye-liuyu/archive/2007/08/29/873904.html

 

支持(0) 反对(0) amityat | 园豆:476 (菜鸟二级) | 2014-10-14 10:42
0

把应用程序池的用户设置为LocalSystem。

可以考虑第三方库,Office组件这套问题多多~

幻天芒 | 园豆:37207 (高人七级) | 2014-10-10 15:08

是,我也已经遇到不少问题了,但由于要转换的文档类型比较多word、excel、powerpoint、visio、project、Publisher),甚至还需要outlook所产生的.msg文件,所以目前只找到这个,你有其他的组件可以介绍嘛

支持(0) 反对(0) Euarne | 园豆:157 (初学一级) | 2014-10-10 15:13

@Euarne: Aspose貌似有一套解决方案,收费的~

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2014-10-10 16:36
0

你如果开发的时候用了office的组件就会这样,需要服务器也装同样的office。解决方案是用NPOI之类的不需要微软office DLL的东东

Cherbim | 园豆:323 (菜鸟二级) | 2014-10-10 15:54

问题是需要转换的文档格式比较多,目前暂时未找到其他解决方案

支持(0) 反对(0) Euarne | 园豆:157 (初学一级) | 2014-10-11 16:58
0

你好,你的问题解决了吗,这几天我也碰到了这个问题,搞了一个星期了,网上能看的也都看了,还是没有解决。。。

edaw | 园豆:202 (菜鸟二级) | 2015-01-21 20:10
0

我来终结这个问题,IIS 应用池配置的时候 进程模型 标识 选择LocalSystem 然后就可以了

gold-cc | 园豆:204 (菜鸟二级) | 2016-12-30 15:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册