2017-10-13 3 views
1

원격 MS Office 문서 관리 솔루션을 만들고 있습니다. IT가 만든 라이브러리를 WebDAV System (www.webdavsystem.com)을 프로토 타입으로 사용했습니다. 실제로 사무실에서 URI를 사용하여 읽기 전용 모드로 문서를 열 수 없다는 점을 제외하고는 (실제로는 Microsoft에서 Office URI Schemes 기준).IT 부서에서 WebDAV 문서를 읽기 전용으로 여는 WebDAV 서버

문서를 읽기 전용 모드로 열려고하므로 다른 사람이 동시에 문서를 편집 할 수 있습니다. B-3에서 볼 수 있듯이. 언급 한 문서의 URI 계획 구문 부분, 세 가지 명령을 사용할 수있다 :

  • OFE - 편집 오픈
  • OFV을 - 뷰 오픈
  • NFT을 - 새 템플릿에서

는 것 같다 그 서버는 어떤 명령이 사용되던간에 항상 "ofe"명령이 주어진대로 작동합니다. 사실, "무엇이든"을 입력해도 문자 적으로 모든 것이 될 수 있습니다. 예를 들어, MS Word를 사용하여 아래의 요청 순서를 게시합니다.

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

올바르게 이해 했으므로 성공적인 LOCK 시도로 인해 문서가 편집 모드로 열립니다. 즉, 그 시점 이전의 어딘가에 MS WORD가 권한을 요청해야하지만 이전 요청을 분석하고 관련 데이터를 찾을 수 없었습니다.
내 환경 문제도 아닙니다. SharePoint에서 확인한 결과 괜찮 았습니다. 그것이 내가 서버를 비난하는 이유입니다. 내가 this 질문 (아래) 문장을 읽으면서

,

대부분의 WebDAV 클라이언트

이를 무시하고 전체 서버 중 하나를 읽기 - 쓰기는 척 또는 읽기 전용 I 시작

을 궁금해하기. 아마 그럴까요? 어쩌면 라이브러리가이를 건너 뛰고 모든 파일을 읽기/쓰기로 처리합니까? 그렇다면 어떻게 확인할 수 있습니까?

나는 this 항목을 확인했습니다. 필자는 OPTIONS 요청에 Office URI 명령이 있지만 링크가 더 이상 유효하지 않다고 언급했습니다. MS 오피스 2016에 의해 보내지는 요청에서, 나는 그것을 어디에서도 발견 할 수 없다. 그게 어디 있니? 어디에?

마지막으로 중요한 것은 this입니다. 그것은 정확하게 내 문제인 것 같지만 언급 된 해결책이 없거나 적어도 제 경우에는 효과가있는 것은 없습니다.

어떤 도움을 주셔서 감사합니다.

답변

0

최근에 Windows 용 최신 MS Office 2016 및 모든 업데이트가 설치된 Mac OS X에 대해 ofv 및 ofe 옵션을 재검사했습니다. 여기에 우리가 찾은 것이 있습니다 :

  • Windows에서는이 옵션이 무시됩니다. 이 매개 변수에 관계없이 MS Office는 읽기/쓰기로 열립니다.
  • Mac OS의 경우이 옵션이 필요합니다. MS Office는이 옵션을 존중하며 ofv/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에서 노란 리본 표시됩니다 "업로드가이 파일을 실패는 다른 사용자가 편집을 위해 잠겨 있습니다."