1

我有一个托管在 SharePoint 2010 文档库中的自定义 ASPX 页面,该页面具有一个或多个从自定义 Web 部件到 SSRS ReportViewWebPart 的 Web 部件连接。

代码是根据页面的定义自动生成的(通过自定义管理界面完成)。它应该看起来像这样(并且在大多数环境中都是如此):

<WebPartPages:SPProxyWebPartManager runat="server" ID="SPProxyWebPartManager1">
    <SPWebPartConnections>
        <WebPartPages:SPWebPartConnection 
            ConsumerID="g_d01bedc6_69b0_4c82_ac64_208be5668ec3"               
            ID="g_437d9428_bdb2_4d37_927c_6e1a984432f5" 
            ProviderConnectionPointID="ProviderValue"                   
            ProviderID="g_AE0B5082_A085_4ba8_AD73_A7AC41E71205">
        </WebPartPages:SPWebPartConnection>
    </SPWebPartConnections>
</WebPartPages:SPProxyWebPartManager>

但是,我们看到了一些缺少连接的环境,如下所示:

<WebPartPages:SPProxyWebPartManager runat="server" ID="SPProxyWebPartManager1">
    <SPWebPartConnections>
    </SPWebPartConnections>
</WebPartPages:SPProxyWebPartManager>

日志记录显示正确的代码被推送到文档库,因此当文件添加到文档库时,某些东西正在剥离 SPWebPartConnection 节点。这是添加文件的代码:

byte[ ] byteArray = Encoding.ASCII.GetBytes( page.Definition );
Hashtable properties = new Hashtable( );
properties.Add( "DashboardID", page.ID );
SPFile newFile = folder.Files.Add( String.Format( "{0}/{1}", folder, pageName ), byteArray, properties, true );

我已经在网上查看了有关将文件添加到文档库的示例,以确保我没有遗漏任何内容。对于 SPWeb,AllowUnsafeUpdates 设置为 true,并且它位于 using 语句中,因此应该正确处理它。

到目前为止,存在此问题的站点之间唯一的共同点是用于 SharePoint 的 SP1。我还在开发环境中检查和测试每个修补程序,但我没有找到导致连接被删除的部分。

任何帮助,将不胜感激。

4

0 回答 0