J'ai défini le contrôle suivant qui sert de wrapper pour un autre contrôle (code simplifié):'Company.Dept.Project.Controls.ControlName' n'est pas autorisé ici car il ne prolonge pas la classe '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);
}
}
}
qui est utilisé dans un contrôle utilisateur:
<%@ Register Assembly="Company.Dept.Project.Controls" Namespace="Company.Dept.Project.Controls TagPrefix="MyControls" %>
<MyControls:ControlName ID="ControlName1" runat="server" />
Lorsqu'il est exécuté localement à partir du serveur de développement ASP.NET, DIT Server et SIT Server, le contrôle rend et fonctionne comme prévu. Cependant, sur le serveur UAT, je reçois l'erreur suivante:
System.Web.HttpException: 'Company.Dept.Project.Controls.MyControls' is not allowed here because it does not extend class 'System.Web.UI.UserControl'
Quelqu'un peut-il fournir une idée des raisons pour lesquelles il échoue dans un environnement, mais pas les autres? Est-ce quelque chose lié à la configuration? Le contrôle utilisateur est hébergé dans un chargeur de contrôle utilisateur de type "SmartPart" qui est utilisé sur un site WSS 3.0 dans les environnements DIT/SIT/UAT.
Merci!
Avez-vous vérifié la visualisation? Est-ce la même version du framework? Que diriez-vous de vérifier la version de System.Web.UI.UserControl dans le GAC dans les deux environnements. –