淺談基於WOPI協議實現跨瀏覽器的Office線上編輯解決方案

来源:https://www.cnblogs.com/wangjiming/archive/2018/12/06/10075296.html
-Advertisement-
Play Games

如今,基於Web版的Office 線上預覽與編輯功能已成為一種趨勢,而關於該技術的實現卻成為了國內大部份公司的技術挑戰,挑戰主要存在於兩方面: 其一:目前國內乃至微軟本身,還沒有相對較為完善的解決方案 其二:對於開發人員來說,可查詢資料甚少,即使翻牆,資料也甚少 基於如上的難點與挑戰,國內規模相對較 ...


    如今,基於Web版的Office 線上預覽與編輯功能已成為一種趨勢,而關於該技術的實現卻成為了國內大部份公司的技術挑戰,挑戰主要存在於兩方面:

    其一:目前國內乃至微軟本身,還沒有相對較為完善的解決方案

    其二:對於開發人員來說,可查詢資料甚少,即使FQ,資料也甚少

    基於如上的難點與挑戰,國內規模相對較大的公司就選擇了SharePoint 的Office線上編輯功能,然而SharePoint 笨重,且對伺服器要求高,除此之外,當前國際市場SharePoint技術

開發人員較少,招聘成本大。

     基於如上種種原因,微軟提供了基於Web版的Office線上編輯功能。

     它除了支持SharePoint,Exchange,Lync Server等外,還支持第三方集成

     它提供了三個介面:

      獲取文件介面

GET   wopi/files/{name}?access_token={access_token}

 獲取文件流介面

GET  wopi/files/{name}/contents?access_token={access_token}

 保存文件介面

POST wopi/files/{name}/contents?access_token={access_token}

      如下為微軟提供的服務發現

    

     鑒於如上相關資料及微軟提供解決方案,本篇文章主要講解基於Windows Server 2012 R2+Office Online Server 2016+WebSite方式,從零開始搭建Office線上編輯功能。

本文側重於環境搭建和demo演示,更具體的介面實現細節,將在下篇文章指出。

一  準備素材

解釋如下:

01 表示Windows Server 2012 R2 更新版操作系統(Win Server 2012 R2版本也可)

02 表示Win Server 2012 R2 X64有線網路激活工具。

03 表示Win  Server 2012 R2 系統激活工具

04 表示Windows Identity Foundation 

05 表示Windows Identity Foundation 的擴展

06 表示.NET Framework 6.2

07 表示 Visual c++ Redistributable Packages for Visual Studio 2013

08 表示  Visual c++ Redistributable Packages for Visual Studio 2015

09 表示 Office Online Server 2016(以前版本叫做Office Web App Server,如cn_office_web_apps_server_2013_with_sp1_x64_dvd_3832995.iso)

10 表示 Office Online Server 2016 語言包

Tip 友情提示

如上安裝包,請儘量按照如上所標註編號順序安裝,否則會出現意想不到的錯誤!!!

二  安裝過程

(一)01_cn_windows_server_2012_r2_with_update_x64_dvd_6052725.iso 安裝

   這個網上教程比較多,屬於傻瓜式一鍵安裝,網上有很多資料可查詢,這裡就不累述。

(二)02_PROWinx64.exe 安裝

  1.安裝包下載

  首先知道自己Windows Server 版本,然後去微軟官網下載對應的安裝包,如我的Windows Server 2012 R2 64對應:

https://downloadcenter.intel.com/download/23073/Intel-Network-Adapter-Driver-for-Windows-Server-2012-R2-

   2.一鍵式安裝

 直接點擊PROWinx64.exe,實現一鍵安裝(若系統不支持,就需要手動安裝,我的就不支持,所以需要手動安裝)

3.手動安裝

   電腦=》右鍵=》屬性=》設備管理器

可以看出,其他設備"乙太網控制器"顯示感嘆號

選中乙太網控制器,右鍵=》更新驅動程式軟體

瀏覽電腦以查找驅動程式軟體(R)

從電腦的設備驅動程式列表選取(L)

下一步

從磁碟安裝

瀏覽PROWinx64.exe解壓包,路徑為:02_PROWinx64\PRO1000\Winx64\NDIS62\e1c62x64.inf

確定

 下一步

正在安裝驅動

關閉

 (三)03_HEU_KMS_Activator_v11.1.0.7z 安裝

  一鍵安裝,重啟電腦即可。

(四)04_Windows6.1-KB974405-x64.msu 安裝

  這個表示Windows Identity Foundation x64,官網下載地址

https://www.microsoft.com/zh-CN/download/details.aspx?id=17331

(五)05_MicrosoftIdentityExtensions-64.msi 安裝

   下載地址:https://go.microsoft.com/fwlink/p/?LinkId=620072

(六)06_NDP452-KB2901954-Web.exe 安裝

   下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=42643

 

(七)07_vcredist_x64_2013.exe 安裝

   下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=40784

(八)08_vc_redist.x64_2015.exe

  下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=48145

 (九)09_OfficeOnlineServer2016.rar 安裝

   下載地址(需要企業批量許可證):https://www.microsoft.com/Licensing/servicecenter/default.aspx

  一鍵安裝即可。

(十)10_wacserverlanguagepack.exe 語言包

  下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=51963

 

三  配置過程

(一)IIS配置

    在安裝IIS時,應全部選擇,否則會報錯:“伺服器端包含”Windows 伺服器功能必須安裝並啟用”(.NET FRAMEWORK 3.5不用安裝)

添加角色和功能

下一步

 

基於角色或基於功能的安裝,下一步

 

 從伺服器池中選擇伺服器,下一步

 除.NET Extensibility 3.5,ASP,ASP.NET 3.5外,其他都選擇安裝

 直到安裝完成即可。

(二)安裝墨跡服務

安裝步驟和IIS差不錯,選擇“墨跡和手寫服務”

(三)AD域配置

域控配置挺簡單的,參照https://jingyan.baidu.com/article/acf728fd4a7f80f8e410a353.html

註意:在配置AD域前,一定要將IP設置為固定,而非自動獲取

(四)關閉防火牆

(三)office Online 伺服器場配置

 啟動服務場:輸入Import-Module OfficeWebApps,回車

Import-Module OfficeWebApps

部署服務場:輸入如下,回車

New-OfficeWebAppsFarm -InternalURL “http://xxx.com” -ExternalUrl “http://ip” -AllowHttp –EditingEnabled

填寫"Y",回車Y

 

再填寫Y,回車

 

顯示如下,表示配置成功

 

四  測試結果

1.檢測Office Online Server 2016是否安裝成功

2.服務發現

 3.程式部署示意圖

(1)HTTP80和HTTP809都是安裝部署結束後,自動生成的。

(2)wopi是我部署的第三方網站,用來存放office文件的

 五  參考文獻

【01】https://code.msdn.microsoft.com/Building-an-Office-Web-f98650d6

【02】https://wopi.readthedocs.io/en/latest/

六  版權區

  • 感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。
  • 博主網址:http://www.cnblogs.com/wangjiming/。
  • 極少部分文章利用讀書、參考、引用、抄襲、複製和粘貼等多種方式整合而成的,大部分為原創。
  • 如您喜歡,麻煩推薦一下;如您有新想法,歡迎提出,郵箱:[email protected]
  • 可以轉載該博客,但必須著名博客來源。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我走過最長的路是你的套路 女:二號男嘉賓,假如我們牽手成功後,你會買名牌包包給我嗎? 男:那你會聽話嗎? 女:會 聽話。 男:聽話 咱不買! 那麼消息隊列MQ有什麼套路呢?(這個話題轉換生硬度連我自己都怕!) 1.消息隊列的應用場景和好處: 非同步-流量削峰 非同步-流量削峰 我們先來看下傳統的伺服器接 ...
  • 什麼是函數 函數是對功能或者動作的封裝 函數的語法和定義 define 定義 def 函數名(): 函數體 調用: 函數名() def yue(): # 描述你的動作 print("拿出手機") print('打開陌陌') print("找一個心儀的小姐姐") print('有沒有時間啊, 聊聊人生 ...
  • 電腦的編程語言類型:編譯型,解釋型 java正是這兩種類型的結合: (1)編輯器編寫java源程式→源文件名:主類名.java (2)將源程式編譯為位元組碼→:位元組碼文件 : 源文件.class (3)利用虛擬機解釋執行。運行過程:載入、代碼校驗、解釋執行 ...
  • 1. 什麼是函數? f(x) = x + 1 y = x + 1 函數是對功能或者動作的封裝 2. 函數的語法和定義 3. 關於函數的返回值 return : 返回 1. 當程式沒寫過return, 不返回任何結果. 如果你非要接收. 接受到的是None 2. 當函數寫return 值, 有一個返回 ...
  • 前言 以博客園為例,爬取我的博客上首頁的發佈時間、標題、摘要,本篇先小試牛刀,先瞭解下它的強大之處,後面講beautifulsoup4的詳細功能。   一、安裝 1.打開cmd用pip線上安裝beautifulsoup4 >pip install beautifulsoup4 &nb ...
  • 新建發送郵件類 爬取英語學習資料 比如爬取英語學習鏈接:http://www.hjenglish.com/new/c1020/,將當前頁文章爬取到併發送郵件到指定郵箱: ...
  • 本節重點不講反射機制,而是講lambda表達式樹來替代反射中常用的獲取屬性和方法,來達到相同的效果但卻比反射高效。 每個人都知道,用反射調用一個方法或者對屬性執行SetValue和GetValue操作的時候都會比直接調用慢很多,這其中設計到CLR中內部的處理,不做深究。然而,我們在某些情況下又無法不 ...
  •  .NET Core實戰項目之CMS 第九章 設計篇 白話架構設計 前面兩篇文章給大家介紹了我們實戰的CMS系統的資料庫設計,源碼也已經上傳到伺服器上了。今天我們就好聊聊架構設計,在開始之前先給大家分享一下這幾天我一直在聽的《從零開始學架構》裡面關於架構設計的定義以及架構設計的三大原則,希望能對大 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...