1
我已经定义了下面的控件作为另一个控件的封装(简化代码):'Company.Dept.Project.Controls.ControlName'在这里是不允许的,因为它没有扩展class'System.Web.UI.UserControl'
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' is not allowed here because it does not extend class 'System.Web.UI.UserControl'
任何人都可以提供任何见解,为什么它是在一个环境中失败,而不是别人?这与配置有关吗?用户控件位于DIT/SIT/UAT环境中的WSS 3.0站点上使用的“SmartPart”风格的用户控件加载器中。
谢谢!
你检查过远景吗?它是相同的框架版本吗?如何在两种环境中检查GAC中的System.Web.UI.UserControl版本。 – 2010-10-14 20:09:54