cheun 发表于 2015-9-29 09:36:29

Sharepoint 2010 解决DFWP

参考这个:
http://support.microsoft.com/kb/2639184

简言之,微软为了防止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."

通常这种情况发生在字段很多(比如超过30个子段)的定制Form之上。

通常是第一次访问时出现这个错误,刷新页面后就正常显示了,估计是因为有缓存的缘故,如果不持续访问,过一段时间又会出现这个错误,估计是缓存失效了。

微软在这个KB中给出了解决方案:
1. 简化xls的代码,从而加快解析速度,于是不超时正常显示 (xsl不是很好写啊)
2. 使用infopath form替代默认的Web Form (好像需要sharepoint企业版)
3. 继承系统自带的DataFormWebPart,创建并应用自己的WebPart(看似复杂实则最可行)
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>

更多参考:

http://sympmarc.com/2011/11/07/august-cumulative-update-causing-stack-overflows-with-dvwps-running-over-one-second/
http://social.msdn.microsoft.com/Forums/en-AU/sharepoint2010general/thread/44cfd798-be7a-4436-8786-bd44049e7def  


通过 Wiz 发布  
页: [1]
查看完整版本: Sharepoint 2010 解决DFWP