简言之,微软为了防止dos攻击,在2011年5~8月份不知道哪个patch中将WebPart的xsl转换时间限制为1秒之内,如果超时就不显示该WebPart而给出如下错误消息:
"Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator."
1) Sub class the DataForm Web Part. Override the following methods. Then Deploy the assembly. Example:
public class customDFWP : DataFormWebPart
{
public override bool IsGhosted
{
get
{
return true;
}
}
public override bool CanHaveServerControls
{
get
{
return true;
}
}
}
2) Add a safe control entry to the web.config Example: <SafeControl Assembly="customDFWP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=963f869a440db619" Namespace="customDFWP" TypeName="*" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="False"/>
3) Add the following to the <tagMapping> element of the web.config Example: <add tagType="Microsoft.SharePoint.WebPartPages.DataFormWebPart, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" mappedTagType="customDFWP.customDFWP, customDFWP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=963f869a440db619" />
4) Register the assembly on the form page. Example: <%@ Register tagprefix="customDFWP" namespace="customDFWP" assembly="customDFWP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=963f869a440db619" %>
5) On the form page find <WebPartPages:DataFormWebPart > and replace it with the new custom tag. Example:<customDFWP:customDFWP>