无法使用DotCMIS或CMIS Workbench导航或查询SharePoint 2013中的某些子文件夹

时间:2016-03-18 10:10:00

标签: sharepoint-2013 cmis dotcmis cmis-workbench

SharePoint 2013的CMIS Workbench / DotCMIS问题

  1. 某些子文件夹i.e. /.../001
  2. 无法获取GetChildren()
  3. 无法执行cmis:query Select * From cmis:folder
  4. 1。不能GetChildren()的一些子文件夹

    DotCMIS.Client.Impl.Folder.GetChildren()异常

    通过Web服务端点(文件夹/.../ 001)

    DotCMIS.Exceptions.CmisConstraintException: Cannot complete this action. Please try again.
    at DotCMIS.Binding.WebServices.NavigationService.GetChildren(String repositoryId, String folderId, String filter, String orderBy, Nullable`1 includeAllowableActions, Nullable`1 includeRelationships, String renditionFilter, Nullable`1 includePathSegment, Nullable`1 maxItems, Nullable`1 skipCount, IExtensionsData extension) in D:\Projects\CMIS\DotCMIS\binding\webservices\webservices.cs:line 653
    at DotCMIS.Client.Impl.Folder.<>c__DisplayClass4.<GetChildren>b__3(Int64 maxNumItems, Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-objects.cs:line 1124
    at DotCMIS.Client.Impl.PageFetcher`1.FetchNextPage(Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 563
    at DotCMIS.Client.Impl.AbstractEnumerator`1.GetCurrentPage() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 528
    at DotCMIS.Client.Impl.CollectionEnumerator`1.MoveNext() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 608
    at ConsoleTest.Module1.Demo(ENDPOINT_TYPE endpoint_type) in D:\Projects\CMIS\ConsoleTest\Module1.vb:line 396
    

    通过AtomPub端点(文件夹/.../ 001)

    DotCMIS.Exceptions.CmisConnectionException: Parsing exception! ---> System.Xml.XmlException: An error has occurred while opening external DTD 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd': The remote server returned an error: (500) Internal Server Error. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
       at System.Net.HttpWebRequest.GetResponse()
       at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
       at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
       at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
       at System.Xml.XmlTextReaderImpl.OpenAndPush(Uri uri)
       at System.Xml.XmlTextReaderImpl.PushExternalEntityOrSubset(String publicId, String systemId, Uri baseUri, String entityName)
       --- End of inner exception stack trace ---
       at System.Xml.XmlTextReaderImpl.Throw(Exception e)
       at System.Xml.XmlTextReaderImpl.PushExternalEntityOrSubset(String publicId, String systemId, Uri baseUri, String entityName)
       at System.Xml.XmlTextReaderImpl.DtdParserProxy_PushExternalSubset(String systemId, String publicId)
       at System.Xml.XmlTextReaderImpl.DtdParserProxy.System.Xml.IDtdParserAdapter.PushExternalSubset(String systemId, String publicId)
       at System.Xml.DtdParser.ParseExternalSubset()
       at System.Xml.DtdParser.ParseInDocumentDtd(Boolean saveInternalSubset)
       at System.Xml.DtdParser.Parse(Boolean saveInternalSubset)
       at System.Xml.DtdParser.System.Xml.IDtdParser.ParseInternalDtd(IDtdParserAdapter adapter, Boolean saveInternalSubset)
       at System.Xml.XmlTextReaderImpl.ParseDtd()
       at System.Xml.XmlTextReaderImpl.ParseDoctypeDecl()
       at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
       at System.Xml.XmlTextReaderImpl.Read()
       at System.Xml.XmlReader.MoveToContent()
       at System.Xml.XmlReader.IsStartElement()
       at DotCMIS.Binding.AtomPub.AtomPubParser.Parse() in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub-parser.cs:line 90
       at DotCMIS.Binding.AtomPub.AbstractAtomPubService.Parse[T](Stream stream) in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub.cs:line 418
       --- End of inner exception stack trace ---
       at DotCMIS.Binding.AtomPub.AbstractAtomPubService.Parse[T](Stream stream) in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub.cs:line 422
       at DotCMIS.Binding.AtomPub.NavigationService.GetChildren(String repositoryId, String folderId, String filter, String orderBy, Nullable`1 includeAllowableActions, Nullable`1 includeRelationships, String renditionFilter, Nullable`1 includePathSegment, Nullable`1 maxItems, Nullable`1 skipCount, IExtensionsData extension) in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub.cs:line 1134
       at DotCMIS.Client.Impl.Folder.<>c__DisplayClass4.<GetChildren>b__3(Int64 maxNumItems, Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-objects.cs:line 1124
       at DotCMIS.Client.Impl.PageFetcher`1.FetchNextPage(Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 563
       at DotCMIS.Client.Impl.AbstractEnumerator`1.GetCurrentPage() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 528
       at DotCMIS.Client.Impl.CollectionEnumerator`1.MoveNext() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 608
       at ConsoleTest.Module1.Demo(ENDPOINT_TYPE endpoint_type) in D:\Projects\CMIS\ConsoleTest\Module1.vb:line 399
    

    通过AtomPub端点(文件夹/.../002)注意:通过WS没有异常。 ?

    DotCMIS.Exceptions.CmisRuntimeException: Unauthorized
        at DotCMIS.Binding.AtomPub.AbstractAtomPubService.Read(UrlBuilder url) in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub.cs:line 442
        at DotCMIS.Binding.AtomPub.NavigationService.GetChildren(String repositoryId, String folderId, String filter, String orderBy, Nullable`1 includeAllowableActions, Nullable`1 includeRelationships, String renditionFilter, Nullable`1 includePathSegment, Nullable`1 maxItems, Nullable`1 skipCount, IExtensionsData extension) in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub.cs:line 1133
        at DotCMIS.Client.Impl.Folder.<>c__DisplayClass4.<GetChildren>b__3(Int64 maxNumItems, Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-objects.cs:line 1124
        at DotCMIS.Client.Impl.PageFetcher`1.FetchNextPage(Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 563
        at DotCMIS.Client.Impl.AbstractEnumerator`1.GetCurrentPage() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 528
        at DotCMIS.Client.Impl.CollectionEnumerator`1.MoveNext() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 608
        at ConsoleTest.Module1.Demo(ENDPOINT_TYPE endpoint_type) in D:\Projects\CMIS\ConsoleTest\Module1.vb:line 399
    

    CMIS Workbench导航到子文件夹(通过AtomPub端点)

    Error connection: Unexpected document! Received: HTML document

    enter image description here

    CMIS Workbench导航到子文件夹(通过WebService端点)

    Error runtime: Cannot complete this action. Please try again.

    enter image description here

    2。无法执行cmis:query Select * From cmis:folder

    CMIS Workbench查询(通过AtomPub端点)

    enter image description here

    再次提交查询会产生不同的错误信息

    enter image description here

    DotCMIS cmis:query(通过AtomPub端点)

    DotCMIS.Exceptions.CmisRuntimeException: Unauthorized
       at DotCMIS.Binding.AtomPub.AbstractAtomPubService.Post(UrlBuilder url, String contentType, Output writer) in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub.cs:line 454
       at DotCMIS.Binding.AtomPub.DiscoveryService.Query(String repositoryId, String statement, Nullable`1 searchAllVersions, Nullable`1 includeAllowableActions, Nullable`1 includeRelationships, String renditionFilter, Nullable`1 maxItems, Nullable`1 skipCount, IExtensionsData extension) in D:\Projects\CMIS\DotCMIS\binding\atompub\atompub.cs:line 2629
       at DotCMIS.Client.Impl.Session.<>c__DisplayClass7.<Query>b__6(Int64 maxNumItems, Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-impl.cs:line 722
       at DotCMIS.Client.Impl.PageFetcher`1.FetchNextPage(Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 563
       at DotCMIS.Client.Impl.AbstractEnumerator`1.GetCurrentPage() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 528
       at DotCMIS.Client.Impl.CollectionEnumerator`1.MoveNext() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 608
       at ConsoleTest.Module1.Demo(ENDPOINT_TYPE endpoint_type) in D:\Projects\CMIS\ConsoleTest\Module1.vb:line 545
    

    CMIS Workbench查询(通过WebService端点)

    enter image description here

    DotCMIS cmis:query(通过WebService端点)

    DotCMIS.Exceptions.CmisConstraintException: Cannot complete this action.
    
    Please try again.
       at DotCMIS.Binding.WebServices.DiscoveryService.Query(String repositoryId, String statement, Nullable`1 searchAllVersions, Nullable`1 includeAllowableActions, Nullable`1 includeRelationships, String renditionFilter, Nullable`1 maxItems, Nullable`1 skipCount, IExtensionsData extension) in D:\Projects\CMIS\DotCMIS\binding\webservices\webservices.cs:line 1425
       at DotCMIS.Client.Impl.Session.<>c__DisplayClass7.<Query>b__6(Int64 maxNumItems, Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-impl.cs:line 722
       at DotCMIS.Client.Impl.PageFetcher`1.FetchNextPage(Int64 skipCount) in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 563
       at DotCMIS.Client.Impl.AbstractEnumerator`1.GetCurrentPage() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 528
       at DotCMIS.Client.Impl.CollectionEnumerator`1.MoveNext() in D:\Projects\CMIS\DotCMIS\client\client-utils.cs:line 608
       at ConsoleTest.Module1.Demo(ENDPOINT_TYPE endpoint_type) in D:\Projects\CMIS\ConsoleTest\Module1.vb:line 545
    

    (仅通过WS端点)当我限制为24个最大匹配时,查询有效:

    enter image description here

    经过一些反复试验,发现有些项目导致错误。

    此查询没问题:

    SELECT * FROM cmis:folder WHERE ID < 39 OR ID > 42
    

    但是,这些会导致错误Error runtime: Cannot complete this action. Please try again.

    SELECT * FROM cmis:folder Where id = 39 (/.../001/001-01) 
    SELECT * FROM cmis:folder Where id = 40 (/.../001/001-02) 
    SELECT * FROM cmis:folder Where id = 42 (/.../001/001-02/001-02-01)
    

    如何解决此问题?

    使用SharePoint中的相同用户帐户查看文件夹及其子文件夹没有问题:

    enter image description here

    我还patched SharePoint with latest cumulative update (Feb, Mar 2016),通过FlorianMüller解决了通过AtomPub端点更改日志的问题。

0 个答案:

没有答案