我正在使用SharePoint Webservices在文档库中创建一个文件,一切都很好.
现在我需要覆盖由/ modified和date创建的,所以我在SharePoint服务器上创建了一个SOAP服务,它使用listItem.UpdateOverwriteVersion()来设置这些值.单击SharePoint中的"查看属性"时,工作并且看起来很好.
现在我的问题/问题,当我调用GetListItems.asmx再次查看文档(SOAP服务)时,我最初创建它的作者仍然列在那里(我也看到了我用覆盖的那个).
那么为什么我会看到这个...就好像我做了一次覆盖,但仍保留着原作者.
为了简短起见,为什么我会看到这两个:
vti_author:SR | TEST\tm(用于创建文档的用户)和display_urn \:schemas-microsoft-com \:office \:office#作者:SW | TEST\Administrator(用户在覆盖时设置为新创建者)
SR与SW的含义是什么?
我已粘贴"GetListItems"命令的完整项目响应
<z:row ows_ID="63"
ows_Title="Even NS 1.0"
ows_MetaInfo="63;#display_urn\:schemas-microsoft-com\:office\:office#Editor:SW|TEST\\Administrator
vti_parserversion:SR|14.0.0.4762
vti_folderitemcount:IR|0
Order:DW|6300.00000000000Site / LocationTaxHTField0:SW|Singapore|dc0e351b-e873-453c-8d23-6b0e21b8360a
Subject Matter Expert:IW|3
vti_author:SR|TEST\\tm
vti_modifiedby:SR|TEST\\tm
_CopySource:SW|c:\\SharePoint Source\\Pdfs\\wicketBasic.pdf
vti_foldersubfolderitemcount:IR|0
TopicsTaxHTField0:SW|Molds|cddd6251-227d-4bb0-86aa-ff5ed715602f;Etiolog|63537636-fbdd-4071-8e1d-0c5cfcec84e3;Allergies|8ca11784-e48a-4d70-a22d-43a06f33f0a2
Document Status:SW|Review
display_urn\:schemas-microsoft-com\:office\:office#Author:SW|TEST\\Administrator
ContentTypeId:SW|0x0101000FF13CC8F9D9B5408C6B72B560B15D6600C85CC76A22DB0D4298AC2D15EBF60842
vti_title:SW|Even NS 1.0
Topics:SW|9;#Molds|cddd6251-227d-4bb0-86aa-ff5ed715602f;#10;#Etiolog|63537636-fbdd-4071-8e1d-0c5cfcec84e3;#11;#Allergies|8ca11784-e48a-4d70-a22d-43a06f33f0a2
Site / Location:SW|8;#Singapore|dc0e351b-e873-453c-8d23-6b0e21b8360a
TaxCatchAll:SW|10;#Etiolog|63537636-fbdd-4071-8e1d-0c5cfcec84e3;#9;#Molds|cddd6251-227d-4bb0-86aa-ff5ed715602f;#8;#Singapore|dc0e351b-e873-453c-8d23-6b0e21b8360a;#11;#Allergies|8ca11784-e48a-4d70-a22d-43a06f33f0a2
display_urn\:schemas-microsoft-com\:office\:office#Subject_x0020_Matter_x0020_Expert:SW|TEST\\Administrator"
ows__ModerationStatus="0"
ows__Level="1"
ows_Last_x0020_Modified="63;#2011-09-27 00:57:18"
ows_UniqueId="63;#{369FADAB-58E1-4C00-B279-6966D3FDB725}"
ows_owshiddenversion="5"
ows_FSObjType="63;#0"
ows_Created_x0020_Date="63;#2011-09-27 00:57:18"
ows_ProgId="63;#"
ows_FileLeafRef="63;#wicketBasic.pdf"
ows_PermMask="0x7fffffffffffffff"
ows_Modified="2011-09-27 00:57:18"
ows_FileRef="63;#Sync Source/wicketBasic.pdf"
ows_DocIcon="pdf"
ows_Editor="3;#TEST\Administrator"></z:row>
Run Code Online (Sandbox Code Playgroud) 首先,我的问题是基于我在网上找到的一些答案,我希望有人可以做出澄清的答案.
从我目前的发现中总结出来的问题非常简短:使用CoreService,似乎WCF是默认情况下上传大于16,384字节的文件的限制.我希望我只是忽略一些非常基本的东西,这将允许我上传不仅仅是空的gif文件,而不必更改服务器配置,因为我打算将此代码用于多个SDL tridion实例.
只是为了提供上下文和我发现的内容,你可能不需要阅读所有这些内容,但由于我花了很多时间查看和尝试各种各样的事情,我想我也可以把它写下来给下一个遇到的人这个.
我正在使用CoreService Stream Upload上传文件,基于此示例: 如何使用核心服务将外部文件导入SDL Tridion 2011?
我不想复制所有代码,但我可以成功地将一个小的(empty.gif)上传到临时位置,使用它作为我的基础,然后我得到一个Windows临时文件路径.
String tempFileLocationOnServer = streamUploadPort.uploadBinaryByteArray(
fileName, data);
Run Code Online (Sandbox Code Playgroud)
对于略大的文件,80K的PDF,我得到一个例外:
反序列化操作"UploadBinaryByteArray"的请求消息体时出错.读取XML数据时已超出最大数组长度配额(16384).通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxArrayLength属性,可以增加此配额.第1行,第2461位.
我发现这个WCF readerQuotas设置 - 缺点?,这似乎解释了它是WCF的问题,并且是为了防止DDOS,并且可以调整这些值.
我认为80K字节不是很多,我没有做任何我不能通过具有相同凭据的Web界面做的事情.
由于CoreService已经需要用户名/密码,我不明白为什么会出现DDOS问题,因为在有效负载之前,请求应该在身份验证上被拒绝.
我知道替代方案,如webdav或在Tridion实例上映射网络驱动器,或使用单独的网络服务器来转储文件,所以我可以在创建多媒体组件时将它们称为"外部",但我宁愿不必去那条路线.