2009-11-23 5 views
0

Je suis très novice dans la programmation Sharepoint, comme le reste de mon équipe. Nous avons décidé d'utiliser la partie intelligente comme notre pont entre sharepoint et nos efforts de développement. Après quelques efforts, nous l'avons fait fonctionner. Cependant, le problème est que lorsque j'utilise un contrôle utilisateur simple pour tester, avec sharepoint om code qui obtient des noms de fichiers dans une bibliothèque de documents, sharepoint me donne une aide plutôt utile "Une erreur inconnue est survenue". Ce code fonctionne très bien à l'intérieur d'une page ASPX. J'ai écrit un autre contrôle d'utilisateur de test simple qui exécute juste une ligne Response.Write() pour vérifier s'il y a un problème avec l'exécution du code, mais celui-ci fonctionne très bien aussi dans une partie intelligente.Sharepoint Smartpart Issue

Code va comme

protected void Button1_Click(object sender, EventArgs e) 
{ 
      Microsoft.SharePoint.SPSite srv1 = 
      new SPSite("http://server:port/"); 

      SPWeb web = srv1.OpenWeb(); 
      var list = web.GetFolder("http://server:port/documentLibrary"); 
      for (int i = 0; i < list.Files.Count; i++) 
      { 
       ListBox1.Items.Add(list.Files[i].Name); 
      } 
} 

Tout ce que nous pouvons manquerions ou faire du tort? Un grand merci à l'avance ...

Répondre

2

AFAIK, Smart Part n'a pas vraiment été nécessaire depuis SharePoint 2003. Pourquoi ne pas simplement créer un contrôle utilisateur normal et le plop dans le dossier/ControlTemplates? Déployer est dans le cadre d'une fonction avec le code lié, le cas échéant ...

Aussi, mettez à jour votre fichier web.config pour afficher les messages d'erreur significatifs:

  • CustomErrors = off
  • Activer Traces Stack en ajoutant CallStack = » true » à la balise SafeMode
  • Définissez l'attribut de débogage de compilation « true »
+0

Merci pour le conseil, il a été utile. Il semble que je reçois cela à cause d'un problème de niveau de confiance. Et il va comme: Détails d'exception: System.Security.SecurityException: Demande d'autorisation de type 'Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version = 12.0.0.0, Culture = neutre, PublicKeyToken = 71e9bce111e9429c 'a échoué. – SirTwilight

+0

Mettez-le dans le GAC et réessayez ou augmentez le niveau de confiance dans votre fichier Web.Config: http://www.codersbarn.com/?tag=/webpart – IrishChieftain

+0

Correction: J'aurais dû dire "inférieur" le niveau de confiance! : -S – IrishChieftain

1

Juste une note de côté, vous devez généralement envelopper votre SPSite et les objets SPWeb i n une clause utilisant comme ceux-ci sont des objets non gérés comme indiqué ici: http://msdn.microsoft.com/en-us/library/aa973248.aspx

protected void Button1_Click(object sender, EventArgs e) 
{ 
using (Microsoft.SharePoint.SPSite srv1 = new SPSite("http://server:port/")) 
{ 
    using (SPWeb web = srv1.OpenWeb()) 
    { 
    var list = web.GetFolder("http://server:port/documentLibrary"); 
    for (int i = 0; i < list.Files.Count; i++) 
    { 
    ListBox1.Items.Add(list.Files[i].Name); 
    } 
    } 
} 
} 
+0

Merci pour info, ne savais pas qu'ils n'étaient pas des objets gérés. – SirTwilight

0

Ok, il est résolu, merci à tous pour l'information et l'aide.

Il s'agissait du niveau de confiance et j'ai défini le niveau de poussée sur "WSS_Medium" dans le fichier web.config de la collection de sites concernée.

<trust level="WSS_Medium" originUrl="" /> 

J'ai trouvé cette solution (ainsi que quelques informations plus pertinentes sur le sujet) dans le blog de Jan Tielen à here