2010-05-04 17 views
1

Je suis un problème avec le code qui a bien fonctionné dans .NET 2.0, mais donne cette erreur sous .Net 4.rendu un contrôle génère exception de sécurité en .Net 4

Construction (web): la sécurité d'héritage règles enfreintes lors de la substitution membre: 'Controls.RelatedPosts.RenderControl (System.Web.UI.HtmlTextWriter)'. L'accessibilité de sécurité de la méthode de dérogation doit correspondre à l'accessibilité de sécurité de la méthode en cours de remplacement.

Ceci est dans DotNetBlogEngine. Il y avait plusieurs autres demandes de sécurité dans le code que .NET 4.0 ne semble pas aimer. J'ai suivi certains des conseils que j'ai trouvés sur les blogs (et ici) et je me suis débarrassé de toutes les autres erreurs. Mais celui-ci me échappe toujours.

Le cœur de BlogEngine principal dll n'est plus défini pour les exigences de sécurité et est également compilé pour .NET 4.0.

Cette erreur se trouve dans le site Web en essayant d'utiliser le dll. Il existe des contrôles qui appellent une méthode RenderControl prenant un HtmlTextWriter. Apparemment, le rédacteur de texte a maintenant un certain nombre d'attributs de sécurité.

Chacun des contrôles implémente une interface personnalisée (public interface ICustomFilter), il n'y a aucune autorisation de sécurité présente ou demande. Le site est en pleine confiance sur ma machine de développement locale.

Mise à jour:

J'ai essayé les différents paramètres sous l'espace de noms de sécurité dans .NET 4 I read about here. Je sais que c'est un changement de sécurité d'accès au code, mais je ne comprends pas pourquoi il ne marche pas (ou le message d'erreur).

Répondre

1

Définissez cet attribut [montage: SecurityRules (SecurityRuleSet.Level1)]

ref: http://msdn.microsoft.com/en-us/library/dd233102%28VS.100%29.aspx

+0

Oui, fait cela. Ça n'a pas marché. J'ai également essayé le niveau 2, et j'ai essayé de faire la même chose sur le site à la place de la DLL. Aucune des combinaisons que j'ai essayées n'a fonctionné. Merci. –

+0

pourquoi cette réponse a-t-elle obtenu le 'contrôle' si cela n'a pas fonctionné? Comment l'as-tu fait fonctionner? – brainmurphy1

0

La seule chose que je devais faire pour fonctionner sous .net 4.0 a été d'ajouter une référence au système. Web.ApplicationServices au projet Core.