1.硬件要求

微软要求实现OfficeOnline Server 需要安装WindowsServer 2012 R2 操作系统的服务器2台: 

1.服务器1做转换服务器(安装 Office OnlineServer 2016 软件,除此之外不能安装与office相关的其他程序);

2.服务器2做域控服务器(转换服务器只有加在域下才能被访问,同时项目部署服务器只有加在域控服务器下才能访问转换服务器)。

服务器所需硬件标准(微软提供最低配置要求,这些只是最低的OS部署标准,该配置下的服务器不能运行任何应用程序或者虚拟机。):

处理器:1.4GHz64位

RAM:512MB

磁盘空间:32GB

其他要求:

DVD 驱动器

超级VGA(800 x 600) 或更高分辨率的显示器

键盘和鼠标(或其他兼容的指点设备)

Internet 访问(可能需要付费)

基于 x64 的操作系统的重要信息

注:win10系统VM2012虚拟机设置4G内存,100G硬盘,4线程处理器 运行系统卡顿明显。

2.环境搭建

2.1环境搭建所需软件及更新包

1.WindowsServer 2012 R2.iso;

2.OfficeOnline Server 2016;

3.Microsoft .Net Framework 4.5.2;

4.Visual C++ Redistributable Packages for Visual Studio 2013;

5.Visual C++ Redistributable for Visual Studio 2015;

6.Microsoft.IdentityModel.Extention.dll;

7.Update for Windows Server 2012 R2 (KB2919442);

8.Update for Windows Server 2012 R2 (KB2919355);

9.Update for Windows Server 2012 R2 (KB2999226)。

 

2.2安装WindowsServer 2012 R2

在服务器1、服务器2安装Windows Server 2012 R2 系统 (一台域控服务器,一台转换服务器),安装过程为ISO镜像文件安装,按照提示步骤进行安装,安装完成后重启。

2.3配置域控服务器

1. 打开服务器管理器,添加角色和功能;

2.下一步;

3.下一步;

4.下一步,选择添加AD域服务,同时添加所需功能;

5.下一步,安装功能;

6.点击安装,安装功能,安装完成后点击关闭。

7.配置域,点击服务器管理器左侧“AD DS” 

8. 点击“升级为域控制器” ;

9. 进入AD域服务器配置向导,下一步(选择添加新林);

10. 填写密码,下一步 ;

12. 提示DNS无法创建,不用管,继续下一步

13. 安装路径,默认,下一步;

14. 查看选项,默认,下一步;

15. 点击安装 

16. 安装完成,会提示注销重启 ;

2.4将转换服务器加入域服务器

1. 打开转换服务器的TCP/IPV4协议修改NDS,指向域控服务器(红框为域服务器的IP地址);

2. 在计算机属性中,修改计算机名称,并添加到域控服务器域名为域转换服务器设定的域名(如下图),确定后提示注销重启服务器;

3. 在域控服务器,管理中选择添加服务器,名称填写转换服务器的计算机名称,立即查找。然后添加到右边,确定。

4. 在域控服务器中,所有服务器显示两台服务器,并都是联机状态则表示成功 。

2.5安装部署Office Online Server 2016

1.安装IIS7.0打开服务器管理器,添加角色和功能;

2.打开“添加角色和功能向导”界面,点击下一步;

3. 基于本机安装,选择“基于角色或者基于功能安装”;

4.下一步;

5. 在服务器角色列表上选择“Web服务器”;

6. “下一步”,安装。注意,在安装IIS的时候要安装Web服务器下面的“管理服务”;

 

2.安装Office Online Server 2016所必需的软件及补丁(按照以下顺序安装,顺序错误会导致软件安装会 错);

Microsoft.Net Framework 4.5.2;

VisualC++ Redistributable Packages for Visual Studio 2013;

Updatefor Windows Server 2012 R2 (KB2919442);

Updatefor Windows Server 2012 R2 (KB2919355);

VisualC++ Redistributable for Visual Studio 2015;

Microsoft.IdentityModel.Extention.dll

Updatefor Windows Server 2012 R2 (KB2999226)。

3.安装OfficeOnline Server 2016

    解压Office Online Server 2016镜像文件,点击OfficeOnline Server 2016里面的setup.exe进行安装,软件安装按照提示完成,安装完成后重启服务器。

4.配置OfficeOnline Server 2016的服务器场

在Windows PowerShell输入命令 Import-ModuleOfficeWebApps 回车,

运行下列命令部署服务器场:(online.office.com为转换服务器计算机全名。)

New-OfficeWebAppsFarm -InternalURL “http://online.office.com”-ExternalUrl “http://192.168.8.132” -AllowHttp –EditingEnabled

–InternalURL内部访问地址,一般是http://机器名.AD域控地址;

–AllowHttp  是否允许http访问;

– ExternalUrl 外部访问地址,一般是服务器的ip地址;

 

回车出现下图:

输入Y成功后返回如下信息:

我们可以在服务器的浏览器中输入下列Url以求证:

http://online.office.com/hosting/discovery

出现以下信息说明部署成功。

3 WOPI协议(Java)

3.1Wopi协议简介

在WOPI中,存在WOPI Server(或者称之为WOPI Host)和WOPI Client两种角色,OfficeOnline Server用作WOPIClient,而我们所开发的部分用作WOPIServer。这个协议的交互过程见下图:

在图中我们能够看到,WOPI Client共向WOPI Server进行了两次请求分别是Tell me about the file以及Give me the file。因此我们所开发的WOPI Server至少需要提供两个接口以实现这两个功能。

3.2Wopi协议信息结构体

 “AllowExternalMarketplace”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “BaseFileName”:{“type”:”string”,”optional”:false}, 

 “BreadcrumbBrandName”:{“type”:”string”,”default”:””,”optional”:true}, 

 “BreadcrumbBrandUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “BreadcrumbDocName”:{“type”:”string”,”default”:””,”optional”:true}, 

 “BreadcrumbDocUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “BreadcrumbFolderName”:{“type”:”string”,”default”:””,”optional”:true}, 

 “BreadcrumbFolderUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “ClientUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “CloseButtonClosesWindow”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “ClosePostMessage”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “CloseUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “DisableBrowserCachingOfUserContent”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “DisablePrint”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “DisableTranslation”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “DownloadUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “EditAndReplyUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “EditModePostMessage”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “EditNotificationPostMessage”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “FileExtension”:{“type”:”string”,”default”:””,”optional”:true},  

 “FileNameMaxLength”:{“type”:”integer”,”default”:250,”optional”:true},  

 “FileSharingPostMessage”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “FileSharingUrl”:{“type”:”string”,”default”:””,”optional”:true},  

 “FileUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “HostAuthenticationId”{“type”:”string”,”default”:””,”optional”:true}, 

 “HostEditUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “HostEmbeddedEditUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “HostEmbeddedViewUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “HostName”:{“type”:”string”,”default”:””,”optional”:true}, 

 “HostNotes”:{“type”:”string”,”default”:””,”optional”:true}, 

 “HostRestUrl”{“type”:”string”,”default”:””,”optional”:true}, 

 “HostViewUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “IrmPolicyDescription”:{“type”:”string”,”default”:””,”optional”:true}, 

 “IrmPolicyTitle”:{“type”:”string”,”default”:””,”optional”:true}, 

 “LicenseCheckForEditIsEnabled”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “OwnerId”:{“type”:”string”,”optional”:false}, 

 “PostMessageOrigin”{“type”:”string”,”default”:””,”optional”:true}, 

 “PresenceProvider”{“type”:”string”,”default”:””,”optional”:true}, 

 “PresenceUserId”{“type”:”string”,”default”:””,”optional”:true}, 

 “PrivacyUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “ProtectInClient”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “ReadOnly”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “RestrictedWebViewOnly”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SHA256”:{“type”:”string”,”optional”:true}, 

 “SignInUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “SignoutUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “Size”:{“type”:”int”,”optional”:false}, 

 “SupportsCoauth”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsCobalt”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsExtendedLockLength”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsFileCreation”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsFolders”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsGetLock”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsLocks”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsRename”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsScenarioLinks”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsSecureStore”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsUpdate”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “SupportsUserInfo”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “TenantId”{“type”:”string”,”default”:””,”optional”:true}, 

 “TermsOfUseUrl”:{“type”:”string”,”default”:””,”optional”:true}, 

 “TimeZone”{“type”:”string”,”default”:””,”optional”:true}, 

 “UniqueContentId”:{“type”:”string”,”default”:””,”optional”:true}, 

 “UserCanAttend”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “UserCanNotWriteRelative”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “UserCanPresent”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “UserCanRename”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “UserCanWrite”:{“type”:”bool”,”default”:false,”optional”:true}, 

 “UserFriendlyName”:{“type”:”string”,”default”:””,”optional”:true}, 

 “UserId”:{“type”:”string”,”default”:””,”optional”:true}, 

 “UserInfo”:{“type”:”string”,”default”:””,”optional”:true}, 

 “Version”:{“type”:”string”,”optional”:false}, 

 “WebEditingDisabled”:{“type”:”bool”,”default”:false,”optional”:true} 

 } 

 

3.3Wopi协议实现(Java)

GETwopi/files/{name}ccess_token={access_token}

GETwopi/files/{name}/contentsccess_token={access_token}

POSTwopi/files/{name}/contentsccess_token={access_token}

第一个接口获取文件的信息,返回的是json数据格式;

第二个是获取文件流;

第三个是保存修改文件。

GETwopi/files/{name}ccess_token={access_token}接口的实现

GETwopi/files/{name}/contentsccess_token={access_token}

POSTwopi/files/{name}/contentsccess_token={access_token}

 

4. Java项目整合Office Online Server

4.1在java项目中配置接口

http://192.168.8.132/we/wordeditorframe.aspxOPISrc=http%3A%2F%2F192.168.8.129%3A8080%2FSmartSchool%2Fwopi%2Ffiles%2Ffs%2Ft2.docx

其中:

192.168.8.132:为转换服务器的ip地址

we/wordeditorframe.aspx : officeonline server 提供的xml action 方法(4.2介绍)

WOPISrc: wopi协议,参数为经过UTF-8加密后的服务器下文件的路径。

文件下载的路径后应该添加/contents例如:

http://127.0.0.1:8080/SmartSchool/wopi/files/1.docx/contents

测试界面:

4.2微软提供的xml方法示例(部分)

Excel操作:

PPT操作:

Word操作:

5.其他问题

5.1 安装Update for WindowsServer 2012 R2 (KB2919355)问题

 安装Update for WindowsServer 2012 R2 (KB2919355)会出现时间安装过长,安装过程 错的问题。当这种问题出现的情况下可以执行以下操作:

1.      关闭windows自动更新;

2.      打开C:WindowsSoftwareDistributionDownload删除该目录下的所有文件;

3.     打开 C:WindowsSoftwareDistributionDataStore删除该目录下的所有文件;

4.     重启服务器,再次安装程序即可。

5.2 虚拟机下 络通信问题(win10系统下)

在虚拟机下安装部署Office Online Server ,宿主机所在的局域 的其他计算机无法访问虚拟机Office Online Server 服务器部署的项目。如遇到此类问题请按照以下步骤执行操作:

1.     同时选中虚拟 卡“VMwareNetwork Adapter VMnet8”和“以太 ”,右键选择“桥接”,系统自动创建一个 桥“ 桥”;

2.     修改 桥“ 桥”的IPv4为静态IP(如下图所示),测试本机可以上 。

4.     虚拟机”-“设置”-“ 络适配器”-“自定义特定 络”-“VMnet8(NAT模式)”-“确定”。

5.     若进入虚拟机,系统显示“本地连接”未连接。右键点击VMware主程序右下角“ 络状态图标”-“连接”。

6.     操作结束,虚拟机可以和外界进行通信。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年7月26日
下一篇 2017年7月26日

相关推荐