Je rencontre un problème d'accès aux objets dans deux instances différentes de l'objet SPSite si l'URL de la collection de sites se trouve dans deux sites différents (par exemple, http://mysite/Docs1/ et http://mysite/subsite/Docs2/). Considérez le code suivant:SPSite à partir de deux sites différents
public static void MoveDocument(Uri sourceUrl, Uri destinationUrl)
{
string sUrl = sourceUrl.ToString();
string dUrl = destinationUrl.ToString();
using (SPSite sourceSite = new SPSite(sUrl))
using (SPSite destinationSite = new SPSite(sUrl))
{
SPWeb sourceWeb = sourceSite.OpenWeb();
SPWeb destinationWeb = destinationSite.OpenWeb();
SPFile sourceFile = sourceWeb.GetFile(sUrl);
SPFolder destinationFolder = destinationWeb.GetFolder(dUrl);
MoveDocument(sourceFile.ParentFolder, destinationFolder, sourceFile.Name);
}
}
Dans le code ci-dessus, si je tente d'initialiser un SPFolder qui se trouve dans un autre site que le site source, il échoue parce que SharePoint tente de regarder dans le même site que SourceSite plutôt que destinationSite.
L'intention est de pouvoir fournir la possibilité de déplacer un fichier d'une bibliothèque de documents à une autre (que ce soit dans la même collection de sites ou non).
Qu'est-ce que je fais mal?
WTF! Ceci est classé dans la catégorie "Je suis un idiot complet"! Je vous remercie! – senfo
Le tout premier exemple de Microsoft sur cette page fuit la collection de sites en combinant deux types jetables en un seul appel. Je viens de soumettre le contenu de la communauté pour le mentionner. –
@Jesse - très bon point et merci de soumettre le contenu à MSDN, il nous aide tous à un moment ou un autre @senfo - Il est toujours bon d'avoir une deuxième paire d'yeux sur notre code! –