2009-02-26 7 views
0

Nous avons créé un répertoire virtuel sous le site racine Sharepoint. Ce répertoire virtuel héberge un service Web accessible de manière anonyme. Dans le code que nous faisons ce qui suit:SharePoint, accès anonyme dans les problèmes FBA et SPContext

using(SPSite site = new site(some uri)) 
{ 
    using(SPWeb web = site.RootWeb) 
    { 
     SPList list = web.Lists["SomeList"]; 
     SPListItem item = list.GetItemById(1); // Exception Here, COM Exception   
    } 
} 

Cela ne fonctionne pas même lors de l'utilisation RunWithElevatedPrivileges. Cependant, si HttpContext.Current est défini sur null, avant de créer le SPSite, tout fonctionne correctement. Toutes les indications sur les raisons pour lesquelles cela se produit seront très utiles.

Cordialement,

Répondre

0

Cela peut ne pas être la cause de votre problème, mais votre SPWeb n'a pas besoin d'être éliminés, selon Roger Lamb here, qui est une distillation des meilleures pratiques de document Microsoft here.

+0

S'il vous plaît voir ce fil, face à des problèmes similaires: http://mphacker.spaces.live.com/blog/cns!8040CC624DDC5404!290.entry –

+0

Si cela est la réponse à votre question, soumettez-le comme une réponse et acceptez - il aidera les autres qui ont des problèmes similaires. –

0

Au contraire! Il est recommandé de toujours vérifier null et de disposer explicitement de votre SPSite et de votre SPWeb, même si SPSite disposera de votre SPWeb pour vous.

Et ce ne fait pas partie du problème soit :-) Au pire qui causerait le processus de travail de recycler un peu plus souvent que d'habitude ...

Pourriez-vous ajouter peut-être un peu plus code (la classe entière).

Veuillez également inclure une trace de pile complète pour l'erreur. (détails sur comment activer la trace de la pile et le débogage ici http://blogs.importchaos.com/alonsorobles/2008/06/09/enabling-the-sharepoint-safe-mode-call-stack-disabling-custom-errors-and-enabling-compilation-debugging/)

Aussi, je le prends, vous êtes sûr que la liste et l'élément existe et permettent un accès anonyme?

Anders Rask concernant

+0

Il est en effet possible de se débarrasser du SPWeb qui gère votre code, et si vous utilisez RootWeb, votre site va baisser, ce qui n'est pas très joli! –

+0

Andy a raison. L'objet SPSite doit être éliminé car il est créé. d'autre part, l'objet SPWeb (Site.RootWeb) n'a pas besoin d'être éliminé. – Jason

+0

L'utilisation dispose du SPWeb. La liste et les éléments existent et sont accessibles aux utilisateurs anonymes. Je peux obtenir une poignée à la fois Web et Liste. Mais lorsque j'essaie d'ouvrir un élément de liste .... Exception COM –

Questions connexes