博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在线文档预览方案 office web apps
阅读量:2201 次
发布时间:2019-05-03

本文共 6714 字,大约阅读时间需要 22 分钟。

分享一下我老师大神的人工智能教程!零基础,通俗易懂!

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

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

  使用该方案的好处:

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

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

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

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

  

阅读目录

安装部署步骤

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

服务器环境要求

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

  

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

软件准备

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

 步骤

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

  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

  官网下载URL:

  

    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 的使用及各参数含义可以去微软官网查看:

-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 进行浏览,出现下面的界面则表示整个安装完成了。

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

Set-OfficeWebAppsFarm -AllowHttp

 我这边装完以后通过花生壳映射了一个外网地址,大家可以访问预览(网络可能不稳定)。

使用示例

    安装完成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中进行使用

 

服务器部署疑难问题

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

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

复制代码
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如果碰到这种问题,可能是使用的本地账户登录的,需要切换到域账户下面操作。
复制代码

 2.HTTP 错误 500.21

复制代码
访问  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 服务已成功启动
复制代码

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

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

 

复制代码
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的文件,发现可以访问了
复制代码

 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站点代码下载地址:

总结

  整个方案不需要自己额外写代码,麻烦的地方在于安装部署,出现错误很难排查,主要还是因为资料少。所以建议安装到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即可进行在线预览:

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

不得不说,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!

这里写图片描述
你可能感兴趣的文章
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>