SharePoint COMException

时间:2009-07-14 10:04:46

标签: sharepoint workflow publishing comexception

在SharePoint Pages库中添加或编辑页面时,我们会遇到以下异常:

  

[COMException(0x81020016):项目不存在   您选择的页面包含一个不存在的项目。它可能有   已被其他用户删除。点击页面顶部的“主页”返回   到您的网站。]   在Microsoft.SharePoint.Library.SPrequestInternalClass.RenderColumn。

奇怪的是,当我们第一次“登记”然后单击“发布”按钮时,它可以完美地运行。但是点击“发布”直接会产生错误,但并不总是!

页面库具有发布和项目计划,无工作流程(视为添加/编辑页面的人员也是批准者)和主要/次要版本。 我们使用从发布页面和自定义PageLayout派生的内容类型。

2 个答案:

答案 0 :(得分:1)

我确定你已经检查了这个,但ULS日志中是否还有其他信息?

您是否尝试过设置调试器以中断所有异常,这是否会为您提供更多信息?转到Debug,Exceptions并勾选Common Language Runtime Exceptions。然后转到工具,选项,调试并取消选中启用我的代码。最后附上w3wp.exe。

如果您运行的是Windows Server 2008,那么您也可以在调试器突破之前尝试taking a dump file。如果您正在运行Server 2003但我没有使用它的经验,ADPlus可能会有所帮助。然后,您应该能够使用DumpChk or WinDbg打开转储文件。

编辑:正如评论中所讨论的,这是部署到生产中的代码,无法使其服务中断。您可以通过编程方式创建转储文件的唯一方法。看看at this question我问过,如果你需要沿着这条路走下去,希望能帮到你。

如果您不想通过调试来解决问题,那么可以尝试将自定义位部署到干净的服务器。看看你是否仍然可以重现问题或者它是否会发生变化。

答案 1 :(得分:1)

我假设您正在使用2个Web服务器的负载平衡。

事实上它并不总是指出服务器之间存在差异。

然后你可以检查一些事情:

  • 两台计算机上的所有版本和服务包是否相同
  • 是否有任何服务器安装了测试版软件
  • 两个服务器上的代码是否相同

在不关闭系统的情况下进行测试可以做的一件事:是从群集中删除第一个Web服务器,看看是否发生错误,然后将其添加回来并对第二个Web服务器执行相同的操作。