«Company.Dept.Project.Controls.ControlName» здесь не допускается, поскольку он не расширяет класс «System.Web.UI.UserControl». - PullRequest
1 голос
/ 15 октября 2010

Я определил следующий элемент управления, который служит оболочкой для другого элемента управления (упрощенный код):

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», который используется на сайте WSS 3.0 в средах DIT / SIT / UAT.

Спасибо!

1 Ответ

0 голосов
/ 20 октября 2010

Похоже, что эта ошибка может возникать, если ссылка на сборку отсутствует.

Проблема была решена после пересоздания установочных пакетов и повторного развертывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...