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

  最近在作项目时,要在手机端实如今线文档预览的功能。因而百度了一下实现方案,大体是将文档转换成pdf,而后在经过插件实现预览。这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫。只能考虑其它方案,这时微软的office web apps方案映入眼帘,因而和同事一块儿用一台PC机折腾了几天终于完成了部署,但愿经过本篇记录下安装过程和遇到的坑。目前使用该方案的有 明道 微软,我部署的服务地址:http://myscloud.vicp.cc/op/generate.aspx 下面是在线预览的效果图。html

  使用该方案的好处:web

  1.现有代码改动量很小,几乎能够忽略不计。sql

  2.无需本身写代码,只需一台服务器便可shell

  3.支持文档类型很全面,doc,ppt,xls,docx,pptx,xlsx,pdf。浏览器

  4.手机和pc都支持,支持文档缓存,分页浏览。缓存

  

阅读目录安全

安装部署步骤

  介绍完特性之后,下面介绍服务的安装部署。我的感受初次部署可能会以为比较困难,由于这个服务限制仍是不少的。服务器

服务器环境要求网络

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

  2.系统要求为widow server2008R2 64bit SP1或者以上,NET Framework 4.5,KB2592525,Windows PowerShell 3.0,IIS,保证80 443 809端口不被占用,确保当前机器没有安装office,确保当前机器没有安装Exchange,sharepoint,lync server,sql server

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

  

  域控服务器安装这里就不介绍了,有须要的能够参考域服务器安装部署这篇文章。

软件准备

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

 步骤

  下面的安装步骤很重要,不按顺序安装可能出现未知错误,很难解决,因此建议按照下面步骤进行安装。

  1.安装.net framework4.5

  2.安装iis7

  打开服务器管理,添加角色

这里说明一点,把这些功能所有都勾上,后面运行命令的时候会用到。

 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

  官网下载URLhttp://download.microsoft.com/do ... D8639/wacserver.exe

  

    7.安装office web apps语言包

  wacserverlanguagepack.exe

  8.安装office web apps sp1补丁包

  9.经过PowerShell配置Office web apps

  这个步骤是最容易出错的,记得要使用域帐户右键管理员方式运行

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

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

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

-ExternalURL:外网浏览地址

-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查看描述

使用过程当中若是想修改服务配置,能够经过Set-OfficeWebAppsFarm命令进行修改

Set-OfficeWebAppsFarm -AllowHttp

 我这边装完之后经过花生壳映射了一个外网地址,你们能够访问预览(网络可能不稳定)。http://myscloud.vicp.cc/op/generate.aspx

使用示例

    安装完成office web apps之后,你能够采用如下方式实如今线预览。

//在线预览服务地址
var strOfficeApps="https://docview.mingdao.com";

//文档地址,须要外网能访问
var strFileUrl="http://74881.vhost65.cloudvhost.net/doc/test.docx";

var strUrl =strOfficeApps+"/op/embed.aspx/src="+encodeURIComponent(strFileUrl);

  这样生成的地址便可以在浏览器中预览了,你能够把这个地址嵌入到iframe中进行使用

<iframe src='strUrl' width='476px' height='288px' frameborder='0'>This is an embedded <a target='_blank' href='http://office.com'>Microsoft Office</a> document, powered by <a target='_blank' href='http://office.com/webapps'>Office Web Apps</a>.</iframe> 

 

服务器部署疑难问题

    下面列举一下安装部署过程当中出现的几个问题及解决办法

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

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


若是碰到这种问题,多是使用的本地帐户登陆的,须要切换到域帐户下面操做。

 2.HTTP 错误 500.21

访问  http://xxxx/hosting/discovery

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

出现这种错误是第一步安装的.net framework4.5未在iis中注册致使的,以管理员方式打开cmd,运行如下命令
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
.\aspnet_regiis.exe -iru Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.17929 用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。 版权全部(C) Microsoft Corporation。保留全部权利。 开始安装 ASP.NET (4.0.30319.17929)。 ............. ASP.NET (4.0.30319.17929)安装完毕。
iisreset /restart /noforce 正在尝试中止... Internet 服务已成功中止 正在尝试启动... Internet 服务已成功启动

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

 服务默认支持的最大文件大小是10M,大于10M会报错。能够经过如下步骤解决此问题 OpenFromUrlMaxFileSizeInKBytes=(System.Int32)512000 后面不要加分号

 

1.打开如图文件Settings_Service.ini,文件目录为C:\Program Files\Microsoft Office Web Apps\OpenFromUrlHost
;
--- OpenFromUrlHost --- ; ; The application root for the current application ApplicationRoot=(System.String)/oh

在默认内容后添加(512000/1024M,能够根据本身的需求设定)
OpenFromUrlMaxFileSizeInKBytes=(System.Int32)512000

2.修改 C:\Program Files\Microsoft Office Web Apps\OpenFromUrlWeb 下的Settings_Service.ini,进行相同的修改
3.重启office web apps服务


再从新试一下>10M的文件,发现能够访问了

 4.文档地址为ip不是域名的预览报错解决方案

  好比文档地址为http://10.5.192.168/A.docx 这个时候预览会报错 ,而相应的地址为http://mydoc.com/A.docx 域名的则是好的。这个问题估计是微软本身的安全验证问题,为了解决此问题我采起了一种地址转发的方式。

  步骤:在Http80站点下添加转发应用程序,站点文件路径必定要选在C:\Windows\System32\drivers\etc 下,而且赋予读写权限,为了方便修改hosts文件

   正常预览访问的是:http://mydoc.com/op/embed.aspx/src=文档地址,如今改成http://mydoc.com/Redirect/embed.aspx/src=文档地址

代码会判断若是是ip则在hosts添加ip和域名的映射关系

Redirect站点代码下载地址:Redirect站点

总结

  整个方案不须要本身额外写代码,麻烦的地方在于安装部署,出现错误很难排查,主要仍是由于资料少。因此建议安装到office web apps步骤时,用ghost工具有份一下系统,以避免出错从头开始安装。

  若是你在安装过程当中遇到奇怪的错误而且解决了,但愿能够告诉我一下,以供我补充完善疑难问题这一项。目前该方案已经在购买服务器实施的过程当中,有须要实如今线文档预览的能够考虑使用。

 

相关文章
相关标签/搜索