在线文档预览方案 office web apps

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.****.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
以下大部分内容我只是转载了一下,免得原作者删除后没得看了,最后面我加了一些转载的原文里缺少的内容!
最近在做项目时,要在手机端实现在线文档预览的功能。于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览。这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫。只能考虑其它方案,这时微软的office web apps方案映入眼帘,于是和同事一起用一台PC机折腾了几天终于完成了部署,希望通过本篇记录下安装过程和遇到的坑。目前使用该方案的有明道 微软,我部署的服务地址:http://myscloud.vicp.cc/op/generate.aspx 下面是在线预览的效果图。

  使用该方案的好处:

  1.现有代码改动量很小,几乎可以忽略不计。

  2.无需自己写代码,只需一台服务器即可

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

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

  在线文档预览方案 office web apps

阅读目录

安装部署步骤

  介绍完特性以后,下面介绍服务的安装部署。个人感觉初次部署可能会觉得比较困难,因为这个服务限制还是很多的。

服务器环境要求

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

  2.系统要求为widow server2008R2 64bit或者以上,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服务器上把文档下载下来,然后进行转换,根据文档名称进行缓存,转换完成以后返回。 带宽越大下载过程使用的时间越短,服务器性能越好转换速度越快。

  在线文档预览方案 office web apps

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

软件准备

  1.本文安装步骤所需的软件我都放在百度云盘了,可以进行下载。下载地址:http://pan.baidu.com/s/1o6tCo8y#path=%252Foffice%2520web%2520apps

在线文档预览方案 office web apps

 步骤

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

  1.安装.net framework4.5

  2.安装iis7

  打开服务器管理,添加角色
在线文档预览方案 office web apps

在线文档预览方案 office web apps

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

 3.安装补丁

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

 4.安装powershell

  Windows6.1-KB2506143-x64.msu

 5.安装墨迹支持

  服务器管理,添加功能

在线文档预览方案 office web apps

  6.安装office web apps

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

  在线文档预览方案 office web apps

在线文档预览方案 office web apps

在线文档预览方案 office web apps

    7.安装office web apps语言包

  wacserverlanguagepack.exe

  8.安装office web apps sp1补丁包

  9.通过PowerShell配置Office web apps

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

在线文档预览方案 office web apps在线文档预览方案 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的怎么设置,可以计算机右键-》属性进行查看  计算机全名则是需要的地址

在线文档预览方案 office web apps

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

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

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

Set-OfficeWebAppsFarm -AllowHttp

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


使用示例

    安装完成office web apps以后,你可以采用以下方式实现在线预览。

在线文档预览方案 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);
在线文档预览方案 office web apps

  这样生成的地址即可以在浏览器中预览了,你可以把这个地址嵌入到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 : 登录失败: 未知的用户名或错误密码

在线文档预览方案 office web apps
PS C:\Users\Administrator> New-OfficeWebAppsFarm -InternalURL "http://xxxx" -AllowHttp -EditingEnabledNew-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如果碰到这种问题,可能是使用的本地账户登录的,需要切换到域账户下面操作。
在线文档预览方案 office web apps

 2.HTTP 错误 500.21

在线文档预览方案 office web apps
访问  http://xxxx/hosting/discoveryHTTP 错误 500.21 - Internal Server Error处理程序“DiscoveryService”在其模块列表中有一个错误模块“ManagedPipelineHandler”出现这种错误是第一步安装的.net framework4.5未在iis中注册导致的,以管理员方式打开cmd,运行以下命令cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319.\aspnet_regiis.exe  -iruMicrosoft (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 服务已成功启动
在线文档预览方案 office web apps

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

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

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

在线文档预览方案 office web apps
1.打开如图文件Settings_Service.ini,文件目录为C:\Program Files\Microsoft Office Web Apps\OpenFromUrlHost; --- OpenFromUrlHost ---;; The application root for the current applicationApplicationRoot=(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的文件,发现可以访问了
在线文档预览方案 office web apps

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

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

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

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

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

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

在线文档预览方案 office web apps

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

总结

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

  如果你在安装过程中遇到奇怪的错误并且解决了,希望可以告诉我一下,以供我补充完善疑难问题这一项。目前该方案已经在购买服务器实施的过程中,有需要实现在线文档预览的可以考虑使用。

------------------转载的内容到此为止---------------------------

1、转载的文章里给出的域服务器的安装是windows server 2012的不是2008 R2,windows server 2008 R2的域环境搭建可看文档:http://wenku.baidu.com/link?url=txQfvoQM8fUNtjA7MjedBJ02Qp1MnamZp1A951oaX5zy551dcmVjvZaX-GB6WaiVIZrhuwNdQUkEREVuVqacxBcd6-h4Mzigsbbw7BYl0mW

2、在安装的过程中我还遇到里一个问题,就是在执行

New-OfficeWebAppsFarm -InternalURL http://xx.domin.com  -ExternalURL http://xx.domin.com  -AllowHttp -EditingEnabled -OpenFromUrlEnabled
时出现“Windows 身份验证”Windows 服务器功能必须安装并启用。这个是因为在安装IIS时没有安装Windows身份验证,需删除IIS后重新安装,
并把Windows身份验证的勾打上即可。
3、安装都完成后,我在预览时报错:很抱歉,由于某种原因不能为你打开。如下:
这是因为文档的url没有使用域名(一定要域名,不能是ip地址)。
例如我在转换server上通过ISS管理器(开始->管理工具->Internet 信息服务(ISS)管理器),新建了一个file,指向本地的一个文件夹,文件夹里
放了待展示的office文档。
然后就可以用转换server的计算机全名作为域名写成文档的url了:
点击CreateLink后,再点击test this link即可进行在线预览:

在线文档预览方案 office web apps

下面在看一个excel预览效果:

在线文档预览方案 office web apps

不得不说,Office Web Apps的预览效果的确不错。

4、文档的地址必须采用域名形式的,这个目前改不了,那转换服务器为什么也一定要使用域名,能不能使用ip?

答案当然是可以的,否则岂不是每个客户端都要在本机的hosts文件里配置转换服务器的ip和对于域名,或者使用花生壳做映射,才能访问转换服务器?

显然这两种解决方式都不好,所以必须得让客户能直接敲ip访问转换服务器,而之前之所以只能用域名,是因为在执行

New-OfficeWebAppsFarm -InternalURL http://yl.yjc.lsx.com -ExternalURL http://yl.yjc.lsx.com  -AllowHttp -EditingEnabled -OpenFromUrlEnabled

时,把内网访问地址(InternalURL)和外围访问地址(ExternalURL)都设置成了域名形式的,现在想使用ip来访问,就重新设置一下即可:

Set-OfficeWebAppsFarm -InternalURL http://192.168.206.131  -ExternalURL http://192.168.206.131  -AllowHttp -EditingEnabled -OpenFromUrlEnabled

这样就可以使用ip访问OWA预览服务了,例如这是我的一个预览地址:

http://192.168.206.131/op/view.aspx?src=http%3A%2F%2Foa.newsee1.com

%2Fupload%2Ffile%2Fpublic%2F201605%2F%E9%95%BF%E8%80%85%E4

%BF%A1%E6%81%AF%E7%BB%9F%E8%AE%A1%E8%A1%A8201605251532170.xls

可以看到地址开头可以使用ip了,而src=XXX后面的就是文档的地址,这个还是得使用域名形式的。

但注意,这样设置之后,就不能使用域名访问转换服务器了,只能使用ip了。

           

给我老师的人工智能教程打call!http://blog.****.net/jiangjunshow

在线文档预览方案 office web apps