概述

office 文件在线协作编辑主要是指word、excel、ppt的多人在线协作编辑,实时同步的功能;

这里主要介绍解决方案之一——基于sharepoint的二次开发(还可以基于wopi实现)的实现方式,该方案主要分两个步骤:

  1. 部署sharepoint
  2. 基于sharepoint的二次开发

本篇主要讲解sharepoint环境的部署,后续的文章会介绍sharepoint的二次开发和wopi的实现,大家有任何问题,欢迎添加文末的QQ群交流。

部署sharepoint

所有服务器都是针对阿里云 win server R2 数据中心版配置

1. 安装配置域控
2. 安装配置Office Online
3. 安装配置SqlServer
4. 安装配置SharePoint

1. 安装配置域
  1. 修改域控服务器、客户端服务器的机器名(方便后续操作);
  2. 安装域控——预控的安装方式很简单,网上也有很多参考教程,这里就不详述了。

注意事项:

  1. 在其他客户端加入域控时,最好先用客户端管理员账号将该客户端的域账号提升为管理员权限,方便后续的配置
  2. 域控服务器最好打开外网ip,否则加入域控的客户端服务器不发连接外网,在客户端上安装程序时,有些安装过程需要在线下载
  3. 域服务器上默认是开了密码策略的,如果要关闭的话可以按一下操作:
1. 打开服务器管理器仪表板
2. 选择右上角的工具>组策略管理
3. 找到对应的域,右键 Default Domain Policy>编辑>计算机配置>策略>windows 设置>安全设置>账户策略>密码策略  然后就可以修改了
2. 安装配置Office Online
  1. 将Office Online服务器加入域
  2. 确保当前登录的域账号是管理员
  3. 用管理员身份运行 powershell
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. 安装以下软件
  • NET Framework 4.5.2
  • Visual C++ Redistributable Packages for Visual Studio 2013
  • Visual C++ Redistributable for Visual Studio 2015
  • Microsoft.IdentityModel.Extention.dll
  1. 安装Office Online Server
  2. 安装证书(如果对外要使用https 的话)
1. 运行MMC
2. 文件 -〉添加/删除管理单元”->列表中选择“证书”->点击“添加”-> 选择“计算机帐户” ->点击完成
3. “个人”- “证书”,右键单击,选择“所有任务-〉导入”, 根据“证书导入向导”的提示,将.pfx格式文件导入,注意导入过程选择“根据证书内容自动选择存储区”
4. iis 中给对应站点绑定证书
  1. 新建场

# 确保外网联通的(联通不了的话可以在域控里面加正向查找区域或者添加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
  1. 测试
    访问host+ /hosting/discovery或者/op/generate.aspx
  1. 如果使用配置的https的话请使用https的地址访问
  2. 如果是本地共享文件、记得给该文件everyone 权限
3. 安装配置SQLServer
  1. 将SQLServer服务器加入域
  2. 确保当前登录的域账号是管理员
  3. 安装SQLServer(正常安装即可,遇见需要选择账号的时候选择当前登录的域账号就可以了)
  4. 安装完成后(SQLServer2016 的ssms 需要单独下载安装),windows认证连接进入数据库,数据库用户添加sharepoint服务器的域账号,同时添加sysadmin 角色(sharepoint 需要建库建表等权限)

注:安装过程请确保网络,如果遇到卡顿(要么翻墙要么等吧…我当时等了2个多小时)

4. 安装配置SharePoint
  1. 将SharePoint服务器加入域
  2. 确保当前登录的域账号是管理员
  3. 确保网络通畅
  4. 先安装界面上的准备文件(也可以手动执行安装包中的prerequisiteinstaller.exe)
  5. 执行安装
  6. 选择创建新的场(第一次装,肯定没有场,所以选它)
  7. Database Server 填写SQLServer服务器的地址(机器名+域控)(如果安装SQLServer时用的是默认实例名,否则地址中请带上实例名)
  8. 数据库的登录账号使用将SharePoint服务器域账号
  9. 填写服务器场密码
  10. 服务器场角色选择 单一服务器场
  11. 修改端口号(不修改的话,每一个管理中心的端口是随机的)
  12. 按照配置向导,配置sharepoint中的第一个web 应用程序
  13. 如果不用sharepoint的搜索功能的话,最好关掉,太占内存了,具体操作方式如下:
# 在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 服务器的关联

  1. 证书安装
  2. 创建sharepoint 和office online 之间的绑定
New-SPWOPIBinding -ServerName <WacServerName> # 切记,如果你要在域控之外的网络环境使用sharepoint 的话, WacServerName 请填写office online 场的外网地址(该地址如果是http的话,请将Get-SPWOPIZone 设置为external-http)Set-SPWOPIZone -zone "external-https" # 外网使用https 访问$Farm = Get-SPFarm
$Farm.Properties.Add("WopiLegacySoapSupport", "<URL>/x/_vti_bin/ExcelServiceInternal.asmx");
$Farm.Update();# URL 为外网office online 地址
  1. 如果配置错了可以使用一下命令删除配置
Remove-SPWOPIBinding -All:$true

到这儿 sharepoint 和office online 的绑定就配置完了
接下来 测试文件预览

  1. 在sharepoint 中新建一个网站集,指定网站集管理员A,A 不能是sharepoint 账号
  2. 进入刚创建的网站集,使用A 账号登录,上传一个文档,即可预览编辑
  3. 如果要在域外访问,选择 系统设置>配置备用访问映射 配置对应的地址即可

到这儿 所有配置就完成了 ,接下来就先引出了下一篇文章,说说如何进行二次开发

  1. 首先sharepoint 是基于windows 认证的,在开发过程中涉及到的用户一般是没有在域里面,不同的业务系统都会有自己的用户提醒,所以需要将业务系统的用户体系和sharepoint的用户做适配,这个过程我们可以通过sharepoint基于Form 的AD 认证来实现
  2. 开发环境的配置,我们在进行sharepoint的二次开发的时候vs要怎么配置
  3. 我们怎么将sharepoint的api通过我们自己的服务暴露出去
  4. 二次开发的一些具体注意事项

结束语

很久之前就想把这个系列的文章整理出来了,在实现了sharepoint与业务系统对接完成后,发现sharepoint的文件协作编辑虽然很完善,二次开发也不难,但也有很多致命的缺点,比如服务器成本太高,部署难度大,所以又去研究了WOPI,目前基于这两种解决方案都有了成熟的案例,感兴趣的朋友可以加下面这个QQ群一起讨论,如果有企业朋友需要合作的话直接添加QQ:779393868.

office 文件在线协作编辑——解决方案1(基于sharepoint的二次开发)相关推荐

  1. qt 二维地图库_Qt轻量级地图解决方案:基于QtLocation的二次开发(四)

    写在前面 在本系列的上一篇中,我将从<Qt之美1:数据指针和私有实现>中的例子抄过来,说明了Qt中源码中(同时也是QtLcation模块中)大量存在的D-P机制.这种设计模式实现了动态库的 ...

  2. 畅写Office云端SDK :“硬核”赋予企业应用在线文档I在线协作编辑I在线预览I在线格式转换服务

    畅写Office是北京稻壳互联数据科技有限公司旗下云端服务产品, 其云服务团队经过数月的努力,国内首次实现Office公有云SDK(类似微软Office365 SDK服务),以支持更多企业SAAS公有 ...

  3. 跨平台(uni-app)文件在线预览解决方案

    1024刚过,也祝愿各位码友在今后生活中,身体健康,事事顺心,再无Bug. 一.前言 之前写过一篇文章关于上传目录文件:uni-app系统目录文件上传(非只图片和视频)解决方案,这次来解决文件预览问题 ...

  4. java 协作编辑,在线协作编辑器之周报收集

    在线协作编辑器之周报收集 一.实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介绍. 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本 ...

  5. 据说这是熟练掌握python的爷们_dongbei 是一门基于 Python 3 二次开发的东北方言编程语言...

    dongbei - 东北方言编程语言 学编程,就整东北浪! 体格咋地 扫码关注原作者微信公众号"老万故事会": 引言 dongbei是啥?它是一门以东北方言词汇为基本关键字的以人为 ...

  6. 基于Visio的二次开发

    基于Visio的二次开发 前一段时间,由于项目的需要:学习了一些关于Visio二次开发的知识:现在工具基本成形了,也算告一段落了:因此想总结一下关于Visio的二次开发的一些基本知识: 对于基于Vis ...

  7. WordPress主题 Vieu主题V4.5无授权无限制版 基于Dux主题二次开发 完美运行

    模板简介: WordPress主题vieu基于Dux主题二次开发!的一款专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板.适用范围:wordpress主题.WordPres ...

  8. java二次开发浏览器内核_深入理解基于Selenium的二次开发

    对于做web端自动化测试的人来说,可能接触selenium比QTP还要多,但是我们在做基于selenium的二次开发的时候,经常会说到二次开发是 为了易于维护,很多人可能不懂得维护的价值是什么,和到底 ...

  9. Vue+Vant 基于DatetimePicker进行二次开发,实现yyyyMMdd hh:mm:ss时间选择

    Vue+Vant 基于DatetimePicker进行二次开发,实现yyyyMMdd hh:mm:ss时间选择 1.效果图 2.前提 3.项目结构 4.index.vue 5.timeSelectio ...

最新文章

  1. ESXi6.5环境搭建(三:vSphere Client6.0安装)
  2. mysql的一个字段最多能插入多少数据?我们存入text类型的值上限是多大?
  3. qt中继承pushbutton自定义控件设置按钮样式
  4. 面试了3个‘85前’的嵌入式软件工程师
  5. linux运维常见网络协议含义及端口
  6. 去重复算法(C语言)
  7. [nowcoder]最长区间
  8. java图书管理系统个人总结_总结:JAVA小项目——图书管理系统
  9. 实用​Android开源项目及库​
  10. html表头固定原理,html Table 表头固定的实现
  11. win10打开计算机黑屏怎么办,win10系统重启黑屏怎么办
  12. 水仙花数有哪些?要100到1000之间所有的水仙花数
  13. giant和huge的区别
  14. 25篇最新CV领域综述性论文速递!涵盖15个方向:目标检测/图像处理/姿态估计/医学影像/人脸识别等方向...
  15. CPSR 和 SPSR
  16. 2020年有寓意的领证日期_2020领证吉日
  17. HTML初学者--列表的简单制作
  18. 数论——佩尔方程变量分解
  19. centos8重启网卡命令nmcli
  20. 蛊惑者马云发家史(曾推毛氏运动唐僧团队)二

热门文章

  1. 丰乳细臀——读《丰乳肥臀》
  2. ScanNet数据集讲解与点云数据下载
  3. 电脑如何炫酷下拉关机
  4. 超详解的迷宫问题(Java版)
  5. C/C++函数传入常量引用的作用(const int a)
  6. 读取DWG文件中的文本信息(CAD2004)
  7. python已停止工作appcrash_如何解决APPCRASH问题
  8. Android APP Crash
  9. 给出年分m和一年中的第n天,算出第n天是几月几号。
  10. 计算机学院毕业季主题,毕业季 | 计算机学院2020届毕业生成长纪念册出炉!