2009-08-13 4 views
0

Nous avons un site d'archivage qui est une copie exacte du site «en direct» mais utilise un compte de service différent. J'ai construit une extension EditControlBlock qui redirige un utilisateur vers une page dans le dossier _layouts. La page contient du texte et un bouton OK.Impossible d'utiliser SPWeb, la connexion à la base de données a échoué

Modifier: Le SPWeb que j'essaie d'utiliser est dans une application Web différente. J'essaie de déplacer le fichier x sur le site d'archivage.

Lorsque les boutons Ok est cliqué, il doit exécuter le code suivant:

using (var archive = new SPSite(archiveurl, SPContext.Current.Web.CurrentUser.UserToken)) 
{ 
    using (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name]) 
    { 
    //move file 
    } 
} 

La chose étrange est, il se casse la ligne 2: using (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name]) Ce qui est bizarre, parce que la première ligne fonctionne. L'erreur que je reçois est:

login failed for user x on database y 

quelqu'un a une idée ici? Le code d'une page dérivée de LayoutsPageBase s'exécute-t-il toujours en tant que compte Apppool de l'application Web ou quelque chose?

+0

Pourquoi utiliser SPSite lorsque vous pouvez utiliser SPContext.Current.Web & Site? – Kusek

+0

Parce que le SPWeb que j'essaie d'utiliser est dans une autre WebApplication. J'essaie de déplacer le fichier x sur le site d'archivage. – Colin

Répondre

1

J'ai défini les paramètres de base de données pour le moment sur la base de données cible. J'ai dû faire de l'utilisateur apppool de l'application web source un membre du groupe db_owner dans la base de données cible. Pas sûr si c'est le chemin à parcourir. Quelqu'un avec une meilleure idée s'il vous plaît dites-moi.

+0

+1 Cela a du sens et c'est la meilleure idée à laquelle je puisse penser! –

+0

Qu'en est-il des services Web? – Kusek

+0

Cela devrait être possible vu que tout le code est exécuté sur la même batterie de serveurs. Ça devrait marcher. utiliser les services Web lorsque vous pouvez utiliser l'API est une solution de contournement majeure (vous changez le code pour contourner un problème qui, pour autant que je sache, est un problème de configuration) – Colin

Questions connexes