症状
假定您在 Microsoft BizTalk Server 2013年使用 SharePoint Services 适配器。从 SharePoint Server 2013 包含托管元数据列,方法是使用适配器的文档库下载文件时,您会收到以下错误消息︰
Windows SharePoint Services 接收适配器无法处理 SharePoint 文件的文件名。遇到了以下错误︰
[System.InvalidCastException] 无法强制转换对象类型的 System.Collections.Generic.Dictionary'2[System.String,System.Object] 键入 Microsoft.SharePoint.Client.Field。 错误代码︰ 12310 一旦您已经解决了问题导致此问题,可以撤消签出该文件,适配器将尝试再次对其进行处理。 此错误由触发 Windows SharePoint Services 接收位置或发送端口和 URI wsss: / / [...]?ViewName = ToBizTalk。 Windows SharePoint Services 适配器事件 ID: 12457
原因
因为 BizTalk Server 2013年使用 SharePoint 2010 客户端库出现问题。但是,我们期望 SharePoint 2013 客户端库。
解决方案
累积更新信息
第一次 BizTalk Server 以下累积更新中修复此问题︰
解决方法
若要变通解决此问题,请使用以下解决方法之一︰
-
不要在 SharePoint Server 2013 文档库中使用托管元数据列。
-
引用的 SharePoint 2010 程序集替换 SharePoint 2013 SharePoint 2013 服务器中的程序集︰
-
Microsoft.SharePoint.Client, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c
-
Microsoft.SharePoint.Client.Runtime, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e94
然后,在 BizTalk 配置文件 (BTSNTSvc.exe.config 和 BTSNTSvc64.exe.config) 中创建以下绑定重定向︰
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly>
<assemblyIdentity name="Microsoft.SharePoint.Client" publicKeyToken="71e9bce111e9429c" culture="neutral" /> <bindingRedirect oldVersion="14.0.0.0" newVersion="15.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.SharePoint.Client.Runtime" publicKeyToken="71e9bce111e9429c" culture="neutral" /> <bindingRedirect oldVersion="14.0.0.0" newVersion="15.0.0.0"/> </dependentAssembly> </assemblyBinding> -
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
参考资料
BizTalk Server 服务包和累积更新列表的详细信息,请参阅KB 2555976︰ 为 BizTalk Server 服务包和累积更新列表。 BizTalk Server 修补程序有关的详细信息,请参阅KB 2003907: BizTalk 修补程序以及累积的信息更新支持。