Sharepoint编辑表单错误

时间:2011-01-10 16:03:09

标签: forms sharepoint-2010

我找不到胶水。试图在浏览器中编辑Listitem,我得到一个日志错误:

找不到文件:C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 14 \ Template \ Layouts \ EditingMenu \ SiteAction.xml System.ArgumentNullException:Der Wert darf nicht NULL sein。 Parametername:s bei System.IO.StringReader..ctor(String s)bei System.Xml.XmlDocument.LoadXml(String xml)bei Microsoft.SharePoint.Publishing.Internal.WorkflowUtilities.FlattenXmlToHashtable(String strXml)bei Microsoft.SharePoint.Publishing .Internal.WorkflowUtilities.DoesWorkflowCancelWhenItemEdited(String associationXml)bei Microsoft.SharePoint.Publishing.WebControls.ConsoleDataSource.EnsurePageNotInLockingWorkflowIfInEditMode()bei Microsoft.SharePoint.Publishing.WebControls.ConsoleDataSource.OnPreRender(EventArgs e)bei System.Web.UI.Control.PreRenderRecursiveInternal ()bei System.Web.UI.Control.PreRenderRecursiveInternal()bei System.Web.UI.Control.PreRenderRecursiveInternal()bei Sy ... 489b3ebb-eb93-4172- SharePoint Foundation Runtime tkau Unexpected System.Web.UI.Page。 ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
Xml就位,同一个Web中的其他列表的编辑表单运行良好...甚至试图创建一个新的Editform(和iisreset等...)

任何提示都会有所帮助

谢谢Lars

2 个答案:

答案 0 :(得分:1)

抛出异常是因为SharePoint 2010期望AssociationData元素包含有效的xml,其中AssociationData元素是Workflow Definition Schema中的标记。在将我们的SP 2007应用程序迁移到SP 2010之后,我遇到了这个问题。不幸的是,仅仅在工作流定义中将有效的xml应用于AssociationData元素是不够的:                 

它仅对修改后创建/启动的应用程序和工作流实例有帮助。因此,对于实时应用程序和启动的工作流实例,我们必须通过对象模型更改AssociationData。我实现了这里描述的一组方法 - SharePoint: Workflow + List Item Edit Form = Value cannot be null Exception。基本方法如下:

public static void AdjustAssociationData(SPWorkflowAssociation workflowAssociation, SPWorkflowAssociationCollection collection)
{
    if (!IsValidXml(workflowAssociation.AssociationData))
    {
        string newValue = string.IsNullOrEmpty(workflowAssociation.AssociationData)
                                ? "<Data />"
                                : string.Format("<Data>{0}</Data>", workflowAssociation.AssociationData);
        workflowAssociation.AssociationData = newValue;
        collection.Update(workflowAssociation);
    }
}

public static bool IsValidXml(string str)
{
    if (!string.IsNullOrEmpty(str))
    {
        try
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            return true;
        }
        catch {}
    }
    return false;
}

另外,从上面提到的博客文章中,您可以下载我开发的控制台应用程序并用于我们的问题sp应用程序。 我希望这会有用。

答案 1 :(得分:0)

事实上,有一个处理批准的工作流附加到元素内容类型,而不是shure谁将它放在那里,但无论如何可以在列表中找到任务。工作流对我来说是神经不可见的。错误是奇怪的,我没想到的东西

拉​​斯