这里不允许'Company.Dept.Project.Controls.ControlName',因为它没有扩展类'System.Web.UI.UserControl'

时间:2010-10-14 20:06:00

标签: asp.net sharepoint sharepoint-2007

我已经定义了以下控件,它用作另一个控件的包装器(简化代码):

using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Company.Dept.Project.Controls.ControlName
{
    [
        AspNetHostingPermission(SecurityAction.Demand,
            Level = AspNetHostingPermissionLevel.Minimal),
        AspNetHostingPermission(SecurityAction.InheritanceDemand,
            Level = AspNetHostingPermissionLevel.Minimal),
        DefaultProperty("Text"),
        ValidationProperty("Text"),
        ToolboxData("<{0}:ControlName runat=\"server\"> </{0}:ControlName>")
    ]
    public class ControlName : WebControl, INamingContainer
    {
        private TextBox _myTextBox;

        public string Text
        {
            get
            {
                EnsureChildControls();
                return _myTextBox.Text;
            }
        }
        protected override void CreateChildControls()
        {
            _myTextBox = new TextBox { ID = "MyTextBox" };
            Controls.Add(_myTextBox);
        }
    }
}

用户控件中使用的是:

<%@ Register Assembly="Company.Dept.Project.Controls" Namespace="Company.Dept.Project.Controls TagPrefix="MyControls" %>
<MyControls:ControlName ID="ControlName1" runat="server" />

从ASP.NET开发服务器,DIT服务器和SIT服务器本地运行时,控件呈现并按预期运行。但是,在UAT服务器上,我收到以下错误:

  

System.Web.HttpException:此处不允许'Company.Dept.Project.Controls.MyControls',因为它不扩展类'System.Web.UI.UserControl'

任何人都可以提供任何有关它在一个环境中失败的原因,而不是其他环境中的失败吗?这与配置有关吗?用户控件托管在“SmartPart”样式的用户控件加载器中,该加载器正在DIT / SIT / UAT环境中的WSS 3.0站点上使用。

谢谢!

1 个答案:

答案 0 :(得分:0)

当缺少引用的程序集时,似乎会发生此错误。

重建安装包并重新部署后问题得以解决。