问题描述:
web应用需要上传ppt和预览,简单的方法就是将ppt上传之后后台转换为pdf,具体实现就不说了,看看遇到坑爹的问题。在visual studio 上调试的时候一切正常,运行稳定,后台任务也正常。功能完成后发布到iis 测试就出现问题了,转换失败,没有任何错误信息,头皮发麻啊。在服务器上找到服务器事件查看,提示如下:
看信息COM权限配置不对,在网上找了一些资料,需要到“组件服务中”修改权限配置。不单独是ppt,word,excel 这些转换也都需要下面这样配置。
一、组件服务权限修改
找到服务的“组件服务”
DCOM配置下面找到PPT,此处ppt名称是 Microsoft PowerPoint Slide,word,excel 也对应不同名称,注意区分。选中名称之后右键“属性”
点击“标识”,修改为“下列用户”,点击“浏览“后添加管理员,管理员需要输入密码(此处会有问题,文章最后在说明)。
二、IIS 程序池设置
iis应用程序池中找到发布网站对应的程序池,点击“高级设置”,标识改为 LocalSystem。
三、其他情况
以上配置完,转换就能成功了,但由于服务器系统不同,也会有不同的问题。
1、组件服务中配置标识,是直接输入管理员账号密码,这样会来带一个问题是,服务器密码被修改,功能就用不了,不知道的人,问题在哪里都找不到,就是一个大坑,我就遇到过。
还有一个办法是选择“交互式用户”,这个不建议,这一个巨坑,你在远程处理服务,或是你本机iis发布的网站功能一切都是正常的,但远程断开时,网站可以运行,功能就用户不了,交互的意思应该就是正在交互的用户,当用户退出或者不活动时就不能用了。
2、其他错误
上面的步骤只是正常完成,但是电脑不同,情况也会有不一样,我也遇到了其他情况,比如下面的情况。
出现上面两个错误需要修改权限,com 权限问题设置修改“服务组件->Microsoft PowerPoint Slide->属性->安全“里面的权限即可,这里为了方便直接everyone,(务器的话可以指定iis 用户)
如果修改了的还不行,那就去改注册表(不建议,改得乱七八糟还不安全,一般不需要这样修改,只是最后找不到问题了,可以试试)
打开注册表:HKEY_CLASSES_ROOT > CLSID 找到 计算机\HKEY_CLASSES_ROOT\CLSID\{91493441-5A91-11CF-8700-00AA0060263B} 右键权限添加everyone ,勾选完全控制权限。