2013-10-09 34 views
0

我有一個問題,我希望有人可能會幫助我。訪問被拒絕做GetDirectories()但Dir在Powershell中工作

我創建了一個自定義操作頁面,其中我將掃描遠程服務器上的目錄以查找一組目錄,並在這些目錄內搜索一組文件。 但是,當我在生產服務器上執行代碼時,我得到一個Access拒絕異常。 如果我在我的測試服務器上使用相同的代碼(訪問相同的遠程服務器),它工作得很好。

如果我在生產服務器上使用powershell或explorer,我可以訪問遠程目錄和文件沒有問題。

我在所有情況下都使用相同的帳戶(如果我打印出Page.User.Identity.Name和SPContext.Current.Web.CurrentUser.LoginName,它們與我在測試服務器上使用的帳戶相同並且相同和從命令行或資源管理器訪問遠程服務器時在生產服務器上登錄的那個)。

的代碼看起來是這樣的:

string user = SPContext.Current.Web.CurrentUser.LoginName.Remove(0,7); 
string user_path = "\\\\srv\\share1\\subdir\\dir\\" + user; 

// The line below will raise an exception on the production server. 
foreach (string board_path in Directory.GetDirectories(user_path, "Board*")) { 
    foreach (string board_file in Directory.GetFiles(board_path, "Board*.xml")) { 
    . 
    . 
    } 
} 

我無法弄清楚爲什麼代碼在運行TESTSERVER而不是生產機器上。我正在使用SharePoint 2010標準版。

在此先感謝您提供的任何幫助。

/弗雷德裏克

回答

0

的問題是使用SPSecurity.RunWithElevatedPrivileges解決()!

/Fredrik