2009-08-13 19 views
0

Wir verfügen über eine Archivwebsite, die eine exakte Kopie der "Live" -Site ist, aber ein anderes Dienstkonto verwendet. Ich habe eine EditControlBlock-Erweiterung erstellt, die einen Benutzer auf eine Seite im _layouts-Ordner umleitet. Die Seite hat etwas Text und eine Ok-Taste.SPWeb kann nicht verwendet werden, Datenbankanmeldung fehlgeschlagen

Bearbeiten: Das SPWeb, das ich versuche zu verwenden, ist in einer anderen WebApplication. Ich versuche, Datei x auf die Archiv-Website zu verschieben.

Wenn die OK-Taste angeklickt wird, sollte es den folgenden Code ausführen:

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

Die seltsame Sache ist, es bricht auf der Linie 2: using (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name]) Welche seltsam ist, weil die erste Zeile funktioniert. Der Fehler, den ich bekommen ist:

login failed for user x on database y 

Wer hier eine Idee? Wird der Code auf einer Seite, die von LayoutsPageBase abgeleitet ist, immer als App Apppool-Konto der App ausgeführt?

+0

Warum Sie neue SPSite verwenden möchten, wenn Sie SPContext.Current.Web & Site verwenden können? – Kusek

+0

Da das SPWeb, das ich verwenden möchte, in einer anderen Webanwendung ist. Ich versuche, Datei x auf die Archiv-Website zu verschieben. – Colin

Antwort

1

Ich habe die Datenbank Itigs vorerst auf der Zieldatenbank eingestellt. Ich musste den Apppool-Benutzer der Quell-Webanwendung zu einem Mitglied der db_owner-Gruppe in der Zieldatenbank machen. Nicht sicher, ob das der richtige Weg ist. Wer eine bessere Idee hat, bitte sag es mir.

+0

+1 Das macht Sinn und ist die beste Idee, die ich mir vorstellen kann! –

+0

Was ist mit Web Services? – Kusek

+0

Dies sollte möglich sein, da der gesamte Code auf derselben Farm ausgeführt wird. Es sollte funktionieren. Verwenden der Webdienste, wenn Sie die API verwenden können, ist IMHO eine große Problemumgehung (d. h. Sie ändern Code zur Problemumgehung ein Problem, das soweit ich feststellen kann, ist ein Konfigurationsproblem) – Colin

Verwandte Themen