2012-11-20 70 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构造函数中。