09
2019
11
23:08:29

软 Office Online Server 2016 服务安装部署 + wopi代码实现


国内bat提供这样的服务,但是要收点钱,所以选择了免费的office online,当然缺点是安装贼烦 

安装过程很繁琐,文档写的很不友好,各种专有词汇,对于新手上手很难,什么域服务器,转换服务器,什么sharepoint,天马行空.之前在网上找到一篇安装的教程,奈何没有图片,全程摸打滚爬,最后安装成功.感觉国内用这个的人应该不多,所以详细教程较少,这次整理下,希望帮助后人.

概述

1.要使用office online功能,首先需要的是2台主机,并且主机的系统要求是windwos Server. 

2.这里提到一共要有2台windwos主机,其中一台是要安装officeOnline ,这个可以理解毕竟要提供officeOnline服务 ,另外一个windows 主机是需要作为域控制器,又是一个专业词汇,域控制器什么鬼? 这里就把这个主机当做主控吧,由这个主机专门负责管理office online主机,

3.上面说到了域控制器,这个是负责管理office online主机的,另外我们的项目是需要编程的,我们需要通过编程将office online融入到项目汇中,我们项目用到的java代码实现wopi,如果是其他的语言实现的wopi代码也可以,这些代码需要运行在域控制器上.

4.下面来看一下,具体的流程 
这里写图片描述http://win-5ldi2svjqoj.test.com/wv/wordviewerframe.aspx?WOPISrc=http://192.168.37.142/wopi/files/123.docx

从这个地址中可以看出,其实是域控主机访问的office online的主机,并在url中带上了域控的主机的地址WOPISrc,这样office Online主机会根据这个地址回调域控主机里面我们写的代码,一共2次,从而进行office 的显示.

把上面的这个地址输入到域控的浏览器中发现,并不能正确的显示,还报错.

这里写图片描述

5.原因排查

半个月前弄好的时候忘记记录,现在搞突然没有用,一定是有什么细节忘记了,只好开始排查

首先是 http://win-5ldi2svjqoj.test.com/hosting/discovery 访问这个地址的话,浏览器可以正确的返回一些数据,这个说明office online服务场是正确安装的.

然后在域控的主机上面单独的访问我们编写的wopi 的代码

http://127.0.0.1/wopi/files/123.docx/contents
  • 1

控制台也确实有输出,说明访问到了,但是ie由于安装没有给我们下载文件,但至少说明wopi 的代码是没有问题的.

这里写图片描述

继续排查,这个时候突然想起一件事情,office online 的主机是会回调 域控的主机的,那么手动的去调用看看

域控的主机ip:192.168.37.142 
在office online 的主机里面的浏览器输入

 http://192.168.37.142/wopi/files/123.docx
  • 1

显示的是无法访问网页

这里写图片描述

这个时候一想,对啊,可能域控主机的防火墙没有关掉,赶紧进入域控的控制面板–>windows防火墙—>启动或关闭windows防火墙,将域防火墙暂时先关掉,点击确定 
这里写图片描述

这个时候再回到域控的主机 ,把上面的那个地址输入按下回车

这里写图片描述

ok啦,结果成功的显示了,在右上角上面有 在浏览器中编辑,点击看一下.

这里写图片描述

可以进行编辑.

大吉大利,一切都是ok 的

至此整个office online 的安装部署,java wopi 代码的运行全部ok.可喜可贺.

6.后记

在我一开始准备安装office online 的时候,同事就跟我说要用到2台机器,一台是安装域控,一台是安装office Online主机, 
自己也是这么摸索着安装,测试,运行.

后来在真实的项目中的时候,甲方对安全要求比较高,安装域控是要经过审核的,金融行业,对钱比较敏感,不可能随随便便让你去在他们那里安装个域控的.

重新整理下整个安装过程和代码的运行过程,其实整个过程好像和域控也没啥关系,我们的服务都是office online 主机提供的,能不能只安装这一台服务器,不安装域控了 ?

想法:直接在一台主机上面安装office online ,并在office online 主机上面配置服务场,然后在随便的另外一台主机上面运行java 编写的wopi的代码.

结果是不行的,因为在服务场的时候,运行的power shell 代码有两个参数

New-OfficeWebAppsFarm -InternalURL “http://WIN-5LDI2SVJQOJ.test.com” -ExternalUrl “http://192.168.37.138 -AllowHttp –EditingEnabled

一个是 InternalURL ,一个是ExternalUrl 
ExternalUrl是office online 的主机的ip地址,这个好说, 
但是InternalURL 你怎么搞了?

如果我们的office online 主机不加入域的话,他的计算机名称里面是没有类似xxx.com 这样的东西的,只是简单的一个名字

这里写图片描述

不死心,继续用这个名字开启服务场试试? 
报错信息明确指明:必须将服务器加入到域中

这里写图片描述

到微软的官方文档 看一看

这里写图片描述

官方文档也写了office online 必须是域的一部分.看来域控是必须要有的,office online 主机不能脱离 域控单独运行.

那怎么办?甲方不让安装域控,那只有使用甲方的域控了,好在这个是可以的.

方法: 
我们只需要把office online添加到甲方的域中就ok,然后甲方自己再把我们的office online主机 添加进管理,和之前的操作是一样的,只不过,域控主机的操作不是我们而已.然后再申请一个机器,在里面跑wopi 代码就ok.

之前做测试WOPI代码的时候,直接在域控上面跑的,现在加入的是甲方的域控,是不能让你在上面跑java 代码的,所以要另外一个机器,在另外一台机器上跑wopi代码

回到自己的测试. 
虚拟机中新建一个主机,ip地址是:192.168.37.135,安装java 环境,把word文件上传到该服务器的c盘,把之前编写的wopi 的代码上传到上面去,并运行.

访问的地址要变化,回调地址从域控的地址,改成新的主机的地址,也就是下面的这个地址:

http://192.168.37.138/wv/wordviewerframe.aspx?WOPISrc=http://192.168.37.135/wopi/files/123.docx

这里写图片描述

结果是ok 的

其实在整个过程中,域控的唯一作用就是 让office online主机添加进域,并管理了office online主机,只有这样office online 主机的服务才能跑起来,一旦跑起来了,后面的事情也就跟域控的主机没有什么关系了




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/983.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: