2010-10-14 60 views
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”风格的用户控件加载器中。

谢谢!

+0

你检查过远景吗?它是相同的框架版本吗?如何在两种环境中检查GAC中的System.Web.UI.UserControl版本。 – 2010-10-14 20:09:54

回答

0

看来,当引用程序集丢失时可能会发生此错误。

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

相关问题