2012-11-20 106 views
2

上查找目錄我對服務器A的網站,它需要到服務器B查找目錄不同的服務器

在我的aspx頁面,我有:

<mb:FileSystemDataSource 
    ID="fileSystemDataSource" runat="server" 
    RootPath="\\servername\Folder\Subfolder" 
    FoldersOnly="true" /> 

MB是集名稱別名。

在我的aspx.cs頁面上,我有:

protected void Page_Load(object sender, EventArgs e) 
{ 
    DataTable gridviewSource = DisplayFilesInGridView(); 
    DataRow gridviewRow; 

    //sets the server path so it does not default to current server 
    string ServerPath = System.IO.Path.Combine(
     "//", 
     this.fileSystemDataSource.RootPath); 

    //Get All Folders Or Directories and add in table 
    DirectoryInfo directory = new DirectoryInfo(Server.MapPath(ServerPath)); 
    DirectoryInfo[] subDirectories = directory.GetDirectories(); 
} 

那麼,它在使用Server.Mappath拋出一個錯誤,因爲它無法找到服務器。 我已連接到網絡。 我看着IIS,我很確定這不是問題。如果是這樣,我真的需要細節。 任何幫助,將不勝感激。

+1

serverB上的這個共享對每個人開放嗎?如果沒有,請將該網站的appdomain在域帳戶下運行,併爲共享 – rene

+0

授予該帳戶的權限,因爲它已經對該域開放,因爲同一站點上的其他代碼訪問該目錄。 – rainhider

回答

0
string ServerPath = System.IO.Path.Combine(
    "//", 
    this.fileSystemDataSource.RootPath); 

您確定"//"是您要尋找的? UNC路徑以"\\"開頭。嘗試在調試模式下運行你的程序,看看實際的ServerPath字符串是什麼。

+0

當我這樣做時,沒有編譯器錯誤,所以也許它找到服務器。它仍然沒有列出我的目錄,但這可能是一個不同的問題。另外,在調試模式下運行使它調試整個網站...我只是在瀏覽器中查看特定頁面。 – rainhider

+0

它不起作用...這是我得到的消息... – rainhider

+0

描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.InvalidOperationException:未能映射路徑'/ oldrabbit/Public/Intranet2007Docs'。 – rainhider

0

所以Directory不喜歡Server.MapPath。我必須將UNC字符串硬編碼到Directory構造函數中。