Sharepoint 编辑后DocLib项保持签出状态

Sharepoint 编辑后DocLib项保持签出状态,sharepoint,sharepoint-2010,ms-word,checkout,splist,Sharepoint,Sharepoint 2010,Ms Word,Checkout,Splist,以下是解决我的问题的步骤: 转到自定义文档库自定义字段,使用自定义字段迭代器自定义ListForm 选择一个现有的生产Word文档*.doc 单击编辑文档,以便在客户端办公室应用程序中进行编辑 编辑单据,点击保存,查看变更上传进度条。。。 关闭文档,我以前打开的视图将被刷新。 问题: 该项目将由管理员签出。无论您使用哪个用户进行编辑,您都会在Administrator下看到签出的文档。 对文档的更改会一次又一次地应用。 我的调查结果: 我浏览了Fiddler,从CellStorage.svc中发

以下是解决我的问题的步骤:

转到自定义文档库自定义字段,使用自定义字段迭代器自定义ListForm 选择一个现有的生产Word文档*.doc 单击编辑文档,以便在客户端办公室应用程序中进行编辑 编辑单据,点击保存,查看变更上传进度条。。。 关闭文档,我以前打开的视图将被刷新。 问题:

该项目将由管理员签出。无论您使用哪个用户进行编辑,您都会在Administrator下看到签出的文档。 对文档的更改会一次又一次地应用。 我的调查结果:

我浏览了Fiddler,从CellStorage.svc中发现了这个CellRequestFail错误:

如果我上传了任何新的文件,那么一切都会很好。即使我下载了一个有问题的文档,并通过创建新项目上传了它,那么一切都会好起来的

更新:
我对一个文件做了一些测试,所以我可以说文件属性中的ETag等于子请求中的ETag。

这就是MS-FSSHTTPS协议中的问题。该协议负责Office客户端Word和SharePoint服务器之间的Office文档文件同步。它应该减少客户端和服务器之间传输的数据量。DOCX文档可以获得更好的结果,但它也适用于文档文件。根据议定书:

Etag:指定要更新的唯一字符串值的字符串 每次更改文件内容时。唯一的字符串 无论哪个协议客户端更新了文件,都会进行更新 共同创作文件中的内容。协议客户端的任何时间 指定单元格子请求中的Etag属性,服务器必须 检查以确保客户端发送的Etag与Etag匹配 为服务器上的该文件指定。如果Etag不匹配 在客户端指定的版本和 服务器,协议服务器必须向发送设置为的错误代码值 CellRequestFail出现在cell子响应消息中。协议 服务器按照[RFC2616]中的规定处理此值


您的文档中的ETAG元数据信息似乎已损坏。

谢谢您的参考,但我如何检查它?您想检查什么?Etag存储在SP的文件元数据结构中,因此您可以使用诸如SharePoint Manager或powershell之类的工具来显示存储的元数据。当您测试文档本身时,它可能是正常的,因为当您将它存储在其他地方时,它可以正常工作。因为你的文档格式是专有的,你不能轻易检查它的内容。我对一个文件做了一些测试,所以我可以说文件属性中的ETag等于子请求中的ETag。
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <ResponseVersion Version="2" MinorVersion="0" xmlns="http://schemas.microsoft.com/sharepoint/soap/"/>
        <ResponseCollection WebUrl="http://kbstg.rt.ru" xmlns="http://schemas.microsoft.com/sharepoint/soap/">
            <Response Url="http://siteurl/Lists/DocumentationListInstance/02_D-link_DSL2640_UEBRUC2E_V2.doc" RequestToken="1" HealthScore="1">
                <SubResponse SubRequestToken="1" ErrorCode="Success" HResult="0">
                    <SubResponseData/>
                </SubResponse>
                <SubResponse SubRequestToken="2" ErrorCode="CellRequestFail" HResult="2147500037">
                    <SubResponseData Etag="&quot;{BB1B8453-5F6F-4D05-8210-E42DB21A6711},12&quot;" CoalesceHResult="0" ContainsHotboxData="False" HaveOnlyDemotionChanges="False">DAALAJ3PKfM5lAabFgMCAAAOAgYAAwUBbgIgAL+u/no9AyhInDE5d6/lgklaAggAZgIAADcBBwGLAQ==</SubResponseData>
                </SubResponse>
            </Response>
        </ResponseCollection>
    </s:Body>
</s:Envelope>
ttidLogCellStg      Sub-request rtQueryChanges failed with error ICsiError: csierrBlobHeap_ClockReversed (0x266)