由于业务需要,需要在WEB项目里直接在页面上看到word内容,实现的方案很简单,无非就是将word转为html,这一部分网上的例子多的是,在这就不写了,这里主要写一下发布后服务器端的配置。
1、win+R运行中输入comexp.msc,64位操作系统输入comexp.msc -32,千万别少了32,否则你改了半天会并没什么用。
2、依次点开组件服务-计算机-我的电脑-DCOM配置,找到对应的office组件,用到word组件的找word,用到excel组件的找excel,都在一起。右键选择属性。
3、在安全选项卡中的三个权限全部改为自定义,点开右侧的编辑按钮,加上运行IIS的用户,我是把IIS的运行用户改成了一个自己添加的用户,所以这里也是维护上这个用户就可以了。默认的就是IUSER和networkservice的用户。
这样加好后就在服务器端打开调用word的页面不会报错了。
有的项目这样就算配置完了,现场用户访问也不会报错,但是我遇到了一个奇怪的事情,就是在服务器端访问调用word的页面不报错,只要有一个用户远程者服务器,所有人访问调用word的页面也不会报错,但一旦远程断开了,也就是没有人远程连接服务器了,所有人访问调用word的页面会直接报错。
经过长时间的测试,最终解决方案如下。
还是在上面的DCOM配置中,在对应office组件属性的最后一个页签标识里,将用户改为"下列用户",并将IIS的运行用户名和密码加上。
结束,解决。
不过还有人这样还不行,最后就需要把服务器上的word文件所在文件夹、web发布项目所在文件夹都配上networkservice和IIS运行用户的权限,将DCOM配置中IIS W3 CONTROL的属性中的标识改为下列用户,并将IIS的运行用户名和密码加上。
问题是解决了,至于原理我是真不清楚,有懂得可以帮忙分析。
1、win+R运行中输入comexp.msc,64位操作系统输入comexp.msc -32,千万别少了32,否则你改了半天会并没什么用。
2、依次点开组件服务-计算机-我的电脑-DCOM配置,找到对应的office组件,用到word组件的找word,用到excel组件的找excel,都在一起。右键选择属性。
3、在安全选项卡中的三个权限全部改为自定义,点开右侧的编辑按钮,加上运行IIS的用户,我是把IIS的运行用户改成了一个自己添加的用户,所以这里也是维护上这个用户就可以了。默认的就是IUSER和networkservice的用户。
这样加好后就在服务器端打开调用word的页面不会报错了。
有的项目这样就算配置完了,现场用户访问也不会报错,但是我遇到了一个奇怪的事情,就是在服务器端访问调用word的页面不报错,只要有一个用户远程者服务器,所有人访问调用word的页面也不会报错,但一旦远程断开了,也就是没有人远程连接服务器了,所有人访问调用word的页面会直接报错。
经过长时间的测试,最终解决方案如下。
还是在上面的DCOM配置中,在对应office组件属性的最后一个页签标识里,将用户改为"下列用户",并将IIS的运行用户名和密码加上。
结束,解决。
不过还有人这样还不行,最后就需要把服务器上的word文件所在文件夹、web发布项目所在文件夹都配上networkservice和IIS运行用户的权限,将DCOM配置中IIS W3 CONTROL的属性中的标识改为下列用户,并将IIS的运行用户名和密码加上。
问题是解决了,至于原理我是真不清楚,有懂得可以帮忙分析。