0

我已经在部署在 IIS 7 的 EPiServer CMS 6 R2 站点上安装了 EPiServer 的 Composer 模块。我已经根据说明配置了 web.config。我可以在“作曲家编辑”模式下查看页面。

当我尝试以管理员模式(用于注册 Composer 块)访问 Composer-plugin 时,出现以下错误。

我该如何解决这个问题?:“/”应用程序中的服务器错误。你调用的对象是空的。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 60:                             <ItemTemplate>
Line 61:                                 <nobr>  
Line 62:                                    <asp:Label ID="Label1" runat="server" 
Line 63:                                         ToolTip ='<%#DataBinder.Eval(Container.DataItem, "Description")%>'
Line 64:                                         Text = '<%# Utils.TrimDescription(DataBinder.Eval(Container.DataItem, "Description").ToString(),20).ToHtmlEncoded()%>'/>         


Source File: c:\EPiServer\Sites\Skien\Dropit\Plugin\Extension\UI\Admin\Controls\FunctionTypeList.ascx    Line: 62

Stack Trace:


[NullReferenceException: Object reference not set to an instance of an object.]
   ASP.dropit_plugin_extension_ui_admin_controls_functiontypelist_ascx.__DataBinding__control19(Object sender, EventArgs e) in c:\EPiServer\Sites\Skien\Dropit\Plugin\Extension\UI\Admin\Controls\FunctionTypeList.ascx:62
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +303
   System.Web.UI.Control.DataBindChildren() +12659735
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
   System.Web.UI.Control.DataBindChildren() +12659735
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
   System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +295
   System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +4780
   System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +95
   System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +19
   System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +222
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +313
   System.Web.UI.Control.DataBindChildren() +12659735
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
   System.Web.UI.Control.DataBindChildren() +12659735
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
   System.Web.UI.Control.DataBindChildren() +12659735
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
   System.Web.UI.Control.DataBindChildren() +12659735
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
   Dropit.Extension.UI.Admin.Controls.FunctionTypeList.DataBind() +646
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3178


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929 
4

1 回答 1

1

Mari Jørgensen的这篇文章描述了 Composer 中其他一些控件的相同问题。

基本上,如果没有设置描述,EPiServer 将返回一个空字符串,而 PageTypeBuilder 返回 null。

string.Empty解决方案是修改Description为null时返回的代码行:

<%# Utils.TrimDescription(DataBinder.Eval(Container.DataItem, "Description") as string ?? String.Empty,20).ToHtmlEncoded()%>'/>
于 2013-02-20T20:11:07.247 回答