office 文件在线协作编辑主要是指word、excel、ppt的多人在线协作编辑,实时同步的功能;
这里主要介绍解决方案之一——基于sharepoint的二次开发(还可以基于wopi实现)的实现方式,该方案主要分两个步骤:
- 部署sharepoint
- 基于sharepoint的二次开发
本篇主要讲解sharepoint环境的部署,后续的文章会介绍sharepoint的二次开发和wopi的实现,大家有任何问题,欢迎添加文末的QQ群交流。
所有服务器都是针对阿里云 win server R2 数据中心版配置
注意事项:
1. 打开服务器管理器仪表板
2. 选择右上角的工具>组策略管理
3. 找到对应的域,右键 Default Domain Policy>编辑>计算机配置>策略>windows 设置>安全设置>账户策略>密码策略 然后就可以修改了
Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,InkandHandwritingServices,NET-Framework-Features,NET-Framework-Core,NET-HTTP-Activation,NET-Non-HTTP-Activ,NET-WCF-HTTP-Activation45,Windows-Identity-Foundation,Server-Media-Foundation
1. 运行MMC
2. 文件 -〉添加/删除管理单元”->列表中选择“证书”->点击“添加”-> 选择“计算机帐户” ->点击完成
3. “个人”- “证书”,右键单击,选择“所有任务-〉导入”, 根据“证书导入向导”的提示,将.pfx格式文件导入,注意导入过程选择“根据证书内容自动选择存储区”
4. iis 中给对应站点绑定证书
# 确保外网联通的(联通不了的话可以在域控里面加正向查找区域或者添加dns转发)因为在验证证书的时候如果没有联网会提示找不到证书
New-OfficeWebAppsFarm -InternalUrl "内网地址(一般可以用机器名+域控)" -ExternalUrl "外网地址(可以是ip、最好还是用域名)" -CertificateName "证书友好名称" -EditingEnabled -OpenFromUrlEnabled
# 如无法识别 New-OfficeWebAppsFarm cmdlet,请执行 Import-Module -Name OfficeWebApps
# -OpenFromUrlEnabled 是访问/op/generate.aspx 所必须的,在/op/generate.aspx中可以查看文件的预览效果(先将文件放入一个共享文件夹中,在/op/generate.aspx 中生成文件预览地址即可)
# 如果需要开启office 插件(office 插件 后面会单独开一篇文章来讲) 请执行
Set-OfficeWebAppsFarm -OfficeAddinEnabled
#关闭office插件
Set-OfficeWebAppsFarm -OfficeAddinEnabled:$false
- 如果使用配置的https的话请使用https的地址访问
- 如果是本地共享文件、记得给该文件everyone 权限
注:安装过程请确保网络,如果遇到卡顿(要么要么等吧…我当时等了2个多小时)
# 在windows 服务中将下面两个服务 设置为禁用
SharePoint Search Host Controller
SharePoint Server Search 16
# 在shapoint 命令窗口中使用 Get-SPServiceInstance 获取服务ID,Stop-SPServiceInstance 停掉服务(搜索主机控制器服务、SharePoint Server Search、Search Query and Site Setting...)
PS C:\Users\SPAdmin> Get-SPServiceInstance
....
PS C:\Users\SPAdmin>
Stop-SPServiceInstance -Identity {Identity } // Get-SPServiceInstance 命令或得的ID
到这儿sharepoint 就安装完成了,可以在浏览器中去预览刚刚配置向导建好的web 应用程序
接下来是配置sharepoint 和 office online 服务器的关联
New-SPWOPIBinding -ServerName
# 切记,如果你要在域控之外的网络环境使用sharepoint 的话, WacServerName 请填写office online 场的外网地址(该地址如果是http的话,请将Get-SPWOPIZone 设置为external-http)
Set-SPWOPIZone -zone "external-https" # 外网使用https 访问
$Farm = Get-SPFarm
$Farm.Properties.Add("WopiLegacySoapSupport", "/x/_vti_bin/ExcelServiceInternal.asmx");
$Farm.Update();
# URL 为外网office online 地址
Remove-SPWOPIBinding -All:$true
到这儿 sharepoint 和office online 的绑定就配置完了
接下来 测试文件预览
到这儿 所有配置就完成了 ,接下来就先引出了下一篇文章,说说如何进行二次开发
- 首先sharepoint 是基于windows 认证的,在开发过程中涉及到的用户一般是没有在域里面,不同的业务系统都会有自己的用户提醒,所以需要将业务系统的用户体系和sharepoint的用户做适配,这个过程我们可以通过sharepoint基于Form 的AD 认证来实现
- 开发环境的配置,我们在进行sharepoint的二次开发的时候vs要怎么配置
- 我们怎么将sharepoint的api通过我们自己的服务暴露出去
- 二次开发的一些具体注意事项
- …
很久之前就想把这个系列的文章整理出来了,在实现了sharepoint与业务系统对接完成后,发现sharepoint的文件协作编辑虽然很完善,二次开发也不难,但也有很多致命的缺点,比如服务器成本太高,部署难度大,所以又去研究了WOPI,目前基于这两种解决方案都有了成熟的案例,感兴趣的朋友可以加下面这个QQ群一起讨论,如果有企业朋友需要合作的话直接添加QQ:779393868.