私の問題の手順は次のとおりです。
- カスタム DocumentLibrary (カスタム フィールド、カスタム FieldIterator を使用したカスタム ListForm) に移動します。
- 既存の本番 Word ドキュメント (*.doc) の 1 つを選択します。
- クライアント Office アプリケーションで編集するには、[ドキュメントの編集] をクリックします。
- ドキュメントを編集して [保存] をクリックし、アップロード中の変更の進行状況バーを確認します...
- ドキュメントを閉じます。前に開いたビューが更新されます。
問題:
- アイテムは管理者によってチェックアウトされます。編集に使用するユーザーは関係ありません。チェックアウトされたドキュメントは常に管理者の下に表示されます。
- ドキュメントへの変更は随時適用されます。
私の調査結果:
Fiddler を調べたところ、CellStorage.svc からこの CellRequestFail エラーが見つかりました。
<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=""{BB1B8453-5F6F-4D05-8210-E42DB21A6711},12"" CoalesceHResult="0" ContainsHotboxData="False" HaveOnlyDemotionChanges="False">DAALAJ3PKfM5lAabFgMCAAAOAgYAAwUBbgIgAL+u/no9AyhInDE5d6/lgklaAggAZgIAADcBBwGLAQ==</SubResponseData>
</SubResponse>
</Response>
</ResponseCollection>
</s:Body>
</s:Envelope>
ULS ログは私に与えました:
ttidLogCellStg Sub-request rtQueryChanges failed with error ICsiError: csierrBlobHeap_ClockReversed (0x266)
そこに新しいドキュメントをアップロードすれば、すべて問題ありません。問題のあるドキュメントをダウンロードして、新しいアイテムを作成してアップロードしたとしても、すべて問題ありません。
更新:
ファイルに対していくつかのテストを行ったので、ファイル プロパティの ETag は SubRequest の ETag と同じであると言えます。