2012-03-01 76 views
0

找到路径I声明为遵循一个DirectoryInfo变量:当我运行从本地主机,但假的我的网站,当我发布并上传DirectoryInfo的只有从本地主机

DirectoryInfo rootDirectory = new DirectoryInfo(@"\\server01\Shared\Saved Stuff\"); 

下面的代码返回true。

bool doesItExist = rootDirectory.Exists; 

我不相信(其实我相信)这是一个安全的权限问题,因为我给实体“每个人”完全访问目标文件夹。任何人都知道为什么会发生这种情况,而且只能在现场进行?仅供参考,当我远程桌面到server01并键入上面的路径时,我可以毫无问题地访问它,就像我可以从本地机器上访问一样。

+0

@Convinced - 请注意,“每个人”不包括“匿名” - [更多信息](http://technet.microsoft.com/en-us/library/cc772745.aspx) – Jed 2012-03-01 00:40:13

回答

0

试试这个

DirectoryInfo rootDirectory = new DirectoryInfo(HttpContext.Current.Server.MapPath(@"\\server01\Shared\Saved Stuff\")); 
+0

谢谢!想知道你是否可以帮忙http://stackoverflow.com/questions/9509022/publishing-asp-net-application-to-the-internet#comment12043101_9509022 – 2012-03-01 02:36:59

+0

没有,不幸的是返回一个不正确的C:\ inetpub \ wwwroot \ server01 \ Shared \ Saved Stuff \ – Lukas 2012-03-01 16:11:44

2

假设你正在使用Windows身份验证您的网站...

最有可能你正在运行到“NTLM一跳” - 证书从其他机器传递到服务器不会被重用来访问第三台机器,并且结果\ server01 \共享正在被未经身份验证的用户访问。

确认 - 尝试在部署代码的服务器上使用浏览器以导航到使用此代码的页面。

+0

感谢您的回答!你能帮我这个请http://stackoverflow.com/questions/9509022/publishing-asp-net-application-to-the-internet – 2012-03-01 01:02:02

+0

这是奇怪的部分。我可以轻松地从我编码的机器导航到机器,甚至是承载实际网站的文件夹。坦率地说,我不认为应该有这种行为的原因,但它是在那里。你似乎已经帮助了你的答案,所以你会得到一个点。 – Lukas 2012-03-01 16:02:28