2017-10-13 119 views
1

我正在創建一個管理遠程MS Office文檔的解決方案。我使用由IT Hit WebDAV System(www.webdavsystem.com)製作的庫作爲原型。實際上它的表現相當不錯,但我無法使用辦公室的URI(基於Microsoft的Office URI Schemes)以只讀模式打開文檔。打開WebDAV文檔在MS Office中以IT只讀方式打開WebDAV服務器

我想以只讀模式打開文檔,因此其他人可以在同一時間對其進行編輯。如可在B-3中看到的那樣。提到文件的URI方案語法部分,有三個可用的命令:

  • OFE - 開放編輯
  • OFV - 打開視圖
  • NFT - 新的模板

似乎無論使用哪個服務器,該服務器總是以「ofe」命令的形式發揮作用。其實,輸入「無論」也是有效的,它可以是字面上的一切。使用微軟Word例如,我在下面後要求順序:

OPTIONS => HEAD => OPTIONS => OPTIONS => LOCK => GET => PROPFIND => OPTIONS 

正如我在編輯模式下打開文檔正確理解,成功鎖定嘗試的結果。這告訴我,在此之前的某個地方,MS WORD應該請求獲得許可,但我分析了以前的請求並且無法找到任何相關數據。
這也不是我的環境問題。我用SharePoint檢查過,它沒問題。這就是爲什麼我會責怪服務器。

正如我在this問題讀的那句話(下同),

最WebDAV客戶端忽略了這一點,並假裝整個服務器或者是讀寫或只讀

我開始想知道。也許是這樣的?也許庫跳過並將每個文件視爲讀寫?如果是,我該如何檢查它是否可以確定?

我已經選中this主題。作者提到,他在OPTIONS請求中有Office URI命令,但鏈接不再有效。在MS Office 2016發送的請求中,我無法在任何地方找到它。它應該在哪裏?哪裏?

最後但並非最不重要的,我發現this話題。這似乎確實是我的問題,但它沒有提到解決方案,或者至少在我的情況下有效。

我會很感激任何幫助。

回答

0

我們最近重新測試了使用最新的MS Office 2016 for Windows和Mac OS X並安裝了所有更新的v和o選項。這裏是我們發現的:

  • 在Windows上,該選項被忽略。不管此參數如何, MS Office以讀寫方式打開。
  • 在Mac OS上,此選項是必需的。 MS Office遵守此選項並根據ofe/ofe打開爲 只讀或讀寫。

根據我們的經驗,沒有可靠的方式以只讀方式打開文檔。在SharePoint Online(SPS 2016)中,也無法在桌面版MS Office中以只讀方式打開文檔。

一種解決方法可能是在IFileAsync中引發DavException。在保存文件時執行WriteAsync()方法。請注意,MS Office將忽略正在返回的消息文本,只會顯示一個通用錯誤。

另一個解決方法是在IMsItemAsync中將文檔標記爲只讀。 GetFileAttributesAsync()方法執行:

public async Task<FileAttributes> GetFileAttributesAsync() 
    { 
     return fileSystemInfo.Attributes | FileAttributes.ReadOnly; 
    } 

MS Office的將顯示爲黃色絲帶「UPLOAD FAILED該文件已被鎖定,由另一用戶編輯」。

相關問題