我找不到胶水。试图在浏览器中编辑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
答案 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谁将它放在那里,但无论如何可以在列表中找到任务。工作流对我来说是神经不可见的。错误是奇怪的,我没想到的东西
拉斯