最近在做项目时,需要用到在线文档预览,看过明道的一篇搭建office web apps服务的文章,但是由于时间的关系,没有仔细研究,这几天有时间,就拿出来研究了下,折腾了几天终于完成了部署,然后就搬过来做下记录。

优点

  • 现有代码改动量很小,几乎可以忽略不计。
  • 无需自己写代码,只需一台服务器即可
  • 支持文档类型很全面,doc,ppt,xls,docx,pptx,xlsx,pdf。
  • 手机和pc都支持,支持文档缓存,分页浏览。

一、服务器环境要求

服务器:两台服务器,一台为转换server,另外一台为域控server。(安装office web apps的服务器必须加域才能安装成功,如果没有加域后面步骤会出现错误,疑难问题里面会介绍)

系统要求:转换服务器使用Window Server 2008 R2 64bit SP1或者以上,NET Framework 4.5,KB2592525,Windows PowerShell 3.0,IIS,保证80 443 809端口不被占用,确保当前机器没有安装office,确保当前机器没有安装Exchange,sharepoint,lync server,sql server

说明:服务器带宽和内存越高越好,测试发现比较耗性能,原因得从服务的实现原理上讲起。office web apps服务会通过用户提供的文档src,从src服务器上把文档下载下来,然后进行转换,根据文档名称进行缓存,转换完成以后返回。 带宽越大下载过程使用的时间越短,服务器性能越好转换速度越快。

  

二、软件下载

本文安装步骤所需的软件我都放在百度云盘了,可以进行下载。下载地址:http://pan.baidu.com/s/1hrBeYqw

三、域控服务器部署

请根据我的另一篇文章:《域控服务器安装教程》完成部署。

四、转换服务器部署

此次操作使用的是 Windows Server 2008 r2 操作系统。

注意:请严格按照下列顺序进行安装,不然可能会出现问题,很难解决!如果遇到需要重启,请重启后继续操作。

1、安装 .NET Framework4.5。

2、安装 IIS7。

1)打开服务器管理,添加角色,选择 Web 服务器,点击下一步,添加所需功能。

2)勾选 “应用程序开发” 功能,其他默认,点击下一步。

3)安装补丁。

  Windows Server 2008 R2 x64 Edition 更新程序 (KB2592525)_Windows6.1-KB2592525-x64.msu

4)安装powershell。

  Windows6.1-KB2506143-x64.msu

5)安装墨迹支持。

打开服务器管理,添加功能,添加墨迹和手写服务下边的墨迹支持。

6)安装office web apps。

打开下载好的 wacserver.exe 文件双击进行安装。

勾选接受条款,点击继续。

文件位置默认,点击 立即安装。

等待安装完成即可!

7)安装语言包。

wacserverlanguagepack.exe

8)安装office web apps sp1补丁包

wacserversp2013-kb2880558-fullfile-x64-glb.exe

9)通过PowerShell配置Office web apps

注意,进行到此步骤的时候,要注销电脑,使用域账户登陆操作。

右键管理员方式运行 PowerShell

启动 office 服务器场、输入以下命令。

Import-Module OfficeWebApps

部署 office 服务器场,输入以下命令(其中的参数需要根据自己的服务器进行修改)。

New-OfficeWebAppsFarm -InternalURL http://xx.domin.com  -ExternalURL http://xx.domin.com  -AllowHttp -EditingEnabled -OpenFromUrlEnabled

office 服务场参数说明:

New-OfficeWebAppsFarm 的使用及各参数含义可以去微软官网查看:http://technet.microsoft.com/zh-cn/library/jj219436.aspx

-InternalURL:内网浏览地址,http://xx.domin.com 其中 xx表示计算机名 domin.com 表示域名

-ExternalURL:外网浏览地址,一般为服务器的IP地址

-AllowHttp 允许80端口访问

-OpenFromUrlEnabled 允许通过url方式进行预览

-CacheLocation  缓存文件存放路径 默认是C:\ProgramData\Microsoft\OfficeWebApps\Working\d

-CacheSizeInGB  最大缓存文件大小 单位GB 默认为15GB

关于-InternalURL的怎么设置,可以计算机右键-》属性进行查看  计算机全名则是需要的地址

执行完命令就可以在iis中查看了,可以看到自动添加了两个站点,通过上面的地址http://xx.domin.com 进行浏览,出现下面的界面则表示整个安装完成了。

可以通过 http://xx.domin.com/hosting/discovery 查看描述。

当然,通过IP也是可以访问的 http://ip地址/hosting/discovery。

使用过程中如果想修改服务配置,可以通过Set-OfficeWebAppsFarm命令进行修改

Set-OfficeWebAppsFarm -AllowHttp

使用以下地址预览文档

  1.  
    //注意,文档地址需要外网能访问到
  2.  
    http://xx.domin.com/op/embed.aspx/src=http://www.baidu.com/test.docx

五、疑难问题解决

1、New-OfficeWebAppsFarm : 登录失败: 未知的用户名或错误密码

  1.  
    PS C:\Users\Administrator> New-OfficeWebAppsFarm -InternalURL "http://xxxx" -AllowHttp -EditingEnabled
  2.  
    New-OfficeWebAppsFarm : 登录失败: 未知的用户名或错误密码。
  3.  
    所在位置 行:1 字符: 1
  4.  
    + New-OfficeWebAppsFarm -InternalURL "http://xxxx" -AllowHttp -EditingE ...
  5.  
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  6.  
    + CategoryInfo : NotSpecified: (:) [New-OfficeWebAppsFarm], AuthenticationException
  7.  
    + FullyQualifiedErrorId : System.Security.Authentication.AuthenticationException,Microsoft.Office.Web.Apps.Adminis
  8.  
    tration.NewFarmCommand

遇到这种问题,可能是你在转换服务器没有注销用户,需要再转换服务器注销用户,切换使用域服务器的账户登陆!

2、HTTP 错误 500.21

  1.  
    HTTP 错误 500.21 - Internal Server Error
  2.  
    处理程序“DiscoveryService”在其模块列表中有一个错误模块“ManagedPipelineHandler”

出现这种错误是第一步安装的.net framework4.5未在iis中注册导致的。

以管理员方式打开cmd,运行以下命令

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319 .\aspnet_regiis.exe -iru

出现如下提示即解决!

  1.  
    Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.17929
  2.  
    用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。
  3.  
    版权所有(C)
  4.  
    Microsoft Corporation。
  5.  
    保留所有权利。
  6.  
     
  7.  
    开始安装 ASP.NET (4.0.30319.17929)。 .............
  8.  
    ASP.NET (4.0.30319.17929)安装完毕。
  9.  
    iisreset /restart /noforce
  10.  
    正在尝试停止...
  11.  
    Internet 服务已成功停止
  12.  
    正在尝试启动...
  13.  
    Internet 服务已成功启动

3、文件太大解决方案(>10M)

服务默认支持的最大文件大小是10M,大于10M会报错。可以通过以下步骤解决此问题

打开文件目录为C:\Program Files\Microsoft Office Web Apps\OpenFromUrlHost 中的文件 Settings_Service.ini

在内容最后添加以下内容(512000/1024M,可以根据自己的需求设定、后面不要加分号)。

OpenFromUrlMaxFileSizeInKBytes=(System.Int32)512000

修改 C:\Program Files\Microsoft Office Web Apps\OpenFromUrlWeb 下的Settings_Service.ini,进行相同的修改

重启office web apps服务即可!

 

4、文档地址为ip时预览报错

比如文档地址为http://10.5.192.168/A.docx 这个时候预览会报错 ,而相应的地址为http://mydoc.com/A.docx 域名的则是好的。这个问题估计是微软自己的安全验证问题,这也算时微软留下来的一个坑,暂时没有想到解决方案。

office web apps 在线问答预览的更多相关文章

  1. office web app server 文件预览部署&& wopi 集成使用

    对于需要进行office 套件文档预览的时候大部分大家使用的是插件,或者类似的,解决方案,微软已经为我们提供了比较好的解决 方案 office web app server (目前名称是office ...

  2. office web apps server 问题和解决办法

    New-OfficeWebAppsFarm –InternalURL "http://owa.zjkhlib.com" –AllowHttp –EditingEnabled 错误1 ...

  3. 在线文档预览方案-office web apps续篇

    上一篇在线文档预览方案-office web apps发布后收到很多网友的留言提问,所以准备再写一篇,一来介绍一下域控服务器安装,总结一下大家问的多的问题,二来宣传预览服务安装与技术支持的事情. 阅读 ...

  4. 在线文档预览方案-office web apps

    最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...

  5. [转载]在线文档预览方案-Office Web Apps

    最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...

  6. 微软office web apps 服务器搭建之在线文档预览(一)

    office web apps安装 系统要求为Windows Server 2012, 注意:转换文档需要两台服务器,一台为转换server,另外一台为域控server.(至于为什么要两台,这个请自行 ...

  7. [Office Web Apps]实现在线office文档预览

    摘要 在使用office web apps实现office文档在线预览的时候,需要注意的地方. web api web api作为owa在线预览服务回调的接口,这里面核心代码片段如下: using H ...

  8. 微软office web apps 服务器搭建之在线文档预览(二)

    上一篇文章已经介绍了整个安装过程了.只要在浏览器中输入文档转换server的ip,会自动跳转,出现如下页面. 那么就可以实现本地文档预览了,你可以试试.(注意:是本地哦,路径不要写错,类似“\\fil ...

  9. office web apps 整合到自己项目中(wopi实现在线预览编辑)

    借助office web apps实现在线预览和在线编辑 我所有的代码都是用go语言编写,你可以直接编译后使用,不用再有其他的操作. 最近项目实在太忙,这几天才有时间,这次是重头戏,要好好琢磨一下怎么 ...

随机推荐

  1. Hive笔记及配置

    Hive 基于Hadoop的数据仓库工具: 将结构化的数据文件,映射为一张表,并提供类SQL查询功能: 本质:将HQL转化为MapReduce程序: Hive处理的数据存储在HDFS: Hive分析数 ...

  2. java后端处理高并发

    一个登陆页面可能会被很多账户同时登陆或者注册,那么我们就好处理这些并发,否则降低程序的使用率,甚至程序奔溃,下面一段代码处理程序的高并发效果不错. /** *@author xiaoxie *@dat ...

  3. WebApi 接口恶意请求限制

    为了防止爬虫以及恶意请求,我们适当的为API增加一个请求限制   WebApiThrottle限流框架    WebApiThrottle支持自定义配置各种限流策略.可以根据不同场景配置多个不同的限制 ...

  4. python3 jieba分词

    一.jieba库用于分词,https://github.com/fxsjy/jieba 二.分词:分词精细:全局(文本分析)<精确(快速成词)<搜素(搜素引擎分词) #分词 str=r'今 ...

  5. redis-4.0.14 cluster 配置实战

    1.操作系统配置 切换到root用户修改配置sysctl.conf vim /etc/sysctl.conf # 添加配置: vm.max_map_count= vm.overcommit_memor ...

  6. VFD 时钟(VFD Clock with STM8 v2.0)

    算是填了最先挖的VFD坑 最近pcb厂家神仙打架,为PCB普及做出了巨大贡献,到这事儿发生我也就开了两三次板,都赶上这个时间了,不开白不开! 不说了,上图! sch: pcb: 方案和之前的除了驱动电 ...

  7. Object.defineProperty 相关学习

    Object.defineProperty 学习   描述: 方法直接在对象上定义一个新属性,或修改对象上的现有属性 并返回该对象.该方法允许精确地添加或修改对象上的属性: 语法: Object.de ...

  8. echo 显示命令

    echo 显示命令 echo 是在PHP里面最常用的一个输出.显示功能的命令.直线电机滑台 我们可以让他显示任何可见的字符. <?php echo 123; ?> <?php $ip ...

  9. sql server 数据类型转换

    --这是显示转换类型,将字符串转成整形SELECT CAST('1' AS int),CONVERT(int,'1')--SqlServer也会隐式转换,如:用字符串乘以一个整形,--整形优先级要大, ...

  10. 报警提示 System.NullReferenceException:“未将对象引用设置到对象的实例。

    System.NullReferenceException:“未将对象引用设置到对象的实例.是就因为Session在记录到服务器时,没有添加  IRequiresSessionState 所以运行时回 ...