在線文檔預覽方案-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工具有份一下系統,以避免出錯從頭開始安裝。

  若是你在安裝過程當中遇到奇怪的錯誤而且解決了,但願能夠告訴我一下,以供我補充完善疑難問題這一項。目前該方案已經在購買服務器實施的過程當中,有須要實如今線文檔預覽的能夠考慮使用。

 

相關文章
相關標籤/搜索