2009-08-13 65 views
0

我們有一個存檔站點,它是「活動」站點的精確副本,但使用不同的服務帳戶。我已經構建了一個EditControlBlock擴展,將用戶重定向到_layouts文件夾中的一個頁面。該頁面上有一些文字和一個確定按鈕。無法使用SPWeb,數據庫登錄失敗

編輯:我試圖使用的SPWeb是在不同的WebApplication中。我正在嘗試將文件x移動到存檔站點。

當點擊確定按鈕,就應該執行以下代碼:

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

奇怪的是,它打破了第2行:using (var newsArchive = archive.RootWeb.Webs[SPContext.Current.Web.Name])這是奇怪的,因爲第一線確實工作。 我得到的錯誤是:

login failed for user x on database y 

任何人有一個想法嗎?源自LayoutsPageBase的頁面上的代碼是否始終以Web應用程序的apppool帳戶運行?

+0

爲什麼您希望在使用SPContext.Current.Web和Site時使用新的SPSite? – Kusek 2009-08-13 07:49:50

+0

因爲我試圖使用的SPWeb是在不同的WebApplication中。我正在嘗試將文件x移動到存檔站點。 – Colin 2009-08-13 08:23:16

回答

1

我已經在目標數據庫上設置了數據庫權限。我必須使源web應用程序的apppool用戶成爲目標數據庫中db_owner組的成員。不確定這是否是要走的路。有更好主意的人請告訴我。

+0

+1這是有道理的,是我能想到的最好的想法! – 2009-08-13 09:04:22

+0

Web服務呢? – Kusek 2009-08-13 10:05:11

+0

這應該是可能的,因爲所有的代碼都在同一個服務器上運行。它應該工作。當你可以使用API​​時,使用Web服務是一種主要的解決方法(即你改變代碼來解決一個問題,據我所知,這是一個配置問題) – Colin 2009-08-13 10:47:34

相關問題