2009-09-08 10 views
1

J'ai besoin de déployer une navigation Silverlight sur mes/_layouts/pages sur un site Sharepoint. D'après ce que je comprends, cela nécessite d'éditer Application.master du site. Cependant, quand je le modifier et déployer (après reseting IIS) Je reçois l'erreur suivante:

Modifier Application.Master dans Sharepoint 2007

Type 'System.Web.UI.WebControls.ContentPlaceHolder' does not have a public property named '__Error'. at System.Web.UI.ControlBuilder.AddProperty(String filter, String name, String value, Boolean mainDirectiveMode) at System.Web.UI.ControlBuilder.PreprocessAttributes(ParsedAttributeCollection attribs) at System.Web.UI.ControlBuilder.Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, String tagName, String id, IDictionary attribs) at System.Web.UI.WebControls.ContentPlaceHolderBuilder.Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, String tagName, String ID, IDictionary attribs) at System.Web.UI.ControlBuilder.CreateBuilderFromType(TemplateParser parser, ControlBuilder parentBuilder, Type type, String tagName, String id, IDictionary attribs, Int32 line, String sourceFileName) at System.Web.UI.ControlBuilder.CreateChildBuilder(String filter, String tagName, IDictionary attribs, TemplateParser parser, ControlBuilder parentBuilder, String id, Int32 line, VirtualPath virtualPath, Type& childType, Boolean defaultProperty) at System.Web.UI.TemplateParser.ProcessBeginTag(Match match, String inputText) at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding)

Quelqu'un at-il aperçu de cette erreur?

Répondre

0

Vérifiez le code HTML pour les étiquettes non fermées. L'erreur que vous obtenez pointe généralement de cette façon.

0

La modification du fichier application.master (ou de tout fichier de la "12 ruche") n'est pas recommandée car cela rend votre installation non prise en charge. Cela signifie également que les modifications affectent chaque application Web utilisée par SharePoint (ce qui peut être OK si vous n'en avez qu'une). Il existe d'autres options, toutes décrites dans this SharePoint Magazine article.

approche alternative

Vous pouvez également modifier pas le fichier application.master du tout. Il contient cette balise de contrôle délégué:

<SharePoint:DelegateControl runat="server" 
    ControlId="AdditionalPageHead" 
    AllowMultipleControls="true"/> 

Par conséquent, une fonction de contrôle délégué pourrait être utilisé pour désactiver ou masquer la programmation navigation par défaut de SharePoint et de le remplacer par votre propre. Le elements.xml ressemblerait à quelque chose comme:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <Control 
     ControlClass="YourAssembly.YourClass" 
     ControlAssembly="YourAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx" 
     Id="AdditionalPageHead" 
     Sequence="1" /> 
</Elements> 

Cette option donne la flexibilité pour activer la fonction uniquement dans les endroits nécessaires, ainsi que votre garde application.master intact sans avoir besoin de modules HTTP de bas niveau.

0

Tout d'abord, ne modifiez pas les fichiers d'origine, une mise à jour ou un SP pourrait l'écraser. Utilisez l'approche d'Alex des délégués ou, si nécessaire, regardez l'approche du gestionnaire http. Il existe un article de la base de connaissances lorsque MS indique que l'absence de support pour la modification du maître d'application peut être corrigée en créant un nouveau répertoire virtuel _layouts, mais que vous préférez utiliser un gestionnaire http si vous ne pouvez pas utiliser les délégués

vous avez modifié la page maître à l'aide de SharePoint Designer. Cela casse généralement les fichiers lorsque vous les enregistrez sur le disque, bien que j'ai entendu dire que la version mise à jour ne fait plus cela (je n'ai pas eu SPD installé sur ma boîte de dev dans plus d'un an). Si vous ouvrez le fichier dans le bloc-notes, vous verrez un certain nombre d'attributs __XXXX qui provoqueront la rupture de la page. Vous pouvez modifier le fichier dans SPD, puis faire tout sélectionner sur le texte, puis couper et dépasser dans le nouveau fichier ouvert dans le bloc-notes/Visual Studio. Bien que je recommanderais d'utiliser Visual Studio pour faire toutes vos modifications. Par la suite, vous devrez utiliser l'approche HTTP Handler/HTTP Module comme vous voulez modifier la marque de la page, même si vous pouvez faire quelque chose de malin avec JavaScript dans un délégué.

Notez que si vous modifiez la page Application.Master dans le dossier layouts, l'installation de SharePoint sera dans un état non pris en charge.

Questions connexes