C# System.IO.DirectoryInfo中的奇怪行为。存在函数

C# System.IO.DirectoryInfo中的奇怪行为。存在函数,c#,asp.net,io,directoryinfo,C#,Asp.net,Io,Directoryinfo,我正在使用c#和asp开发一个应用程序。它需要访问本地网络中的一些地方。表单中有一个文本框,它接受从用户访问的路径,并将其存储到名为location的字符串变量中 如果应用程序在windows 7中运行,则if循环始终返回false。它只在从安装的应用程序运行时发生,否则,如果路径为true,它将返回true。代码如下: textbox反向上传的输入如下所示 \\192.168.0.33\Others (F) 。如果应用程序托管在具有windows XP的系统上,则可以正常工作 Syste

我正在使用c#和asp开发一个应用程序。它需要访问本地网络中的一些地方。表单中有一个文本框,它接受从用户访问的路径,并将其存储到名为location的字符串变量中

如果应用程序在windows 7中运行,则if循环始终返回false。它只在从安装的应用程序运行时发生,否则,如果路径为true,它将返回true。代码如下:

textbox反向上传的输入如下所示

 \\192.168.0.33\Others (F)
。如果应用程序托管在具有windows XP的系统上,则可以正常工作

 System.IO.DirectoryInfo locationInfo = new System.IO.DirectoryInfo(BackupLocationTxt.Text);
        if (locationInfo.Exists) // always return false  if the application run in windows 7
       {

       }

为什么会发生这种情况?

之所以会发生这种情况,是因为运行应用程序的用户没有读取这些文件夹的权限。您可能需要向运行站点的帐户授予对这些文件夹的读取权限。

请改为尝试
System.IO.Directory.Exists(字符串路径)

您的ASP.NET应用程序对本地网络中其他计算机上的文件夹没有权限


尝试使用在LocalService帐户下启动的windows服务。

在windows xp中工作正常。如果应用程序在windows 7.0中运行,并且文件夹对该应用程序所在的每个人都具有读写权限,我如何授予权限?IIS、Cassini等?应用程序以IISIIS7、集成模式、经典模式托管?应用程序池是在哪个帐户下配置的?应用程序是在ASPNET帐户下运行的。它托管在IIS7中。您如何创建字符串
位置
?在ASP上时,您应该使用
Server.MapPath(string)
获取磁盘上的实际位置,而不是相对于web应用程序路径的位置。这可能是问题吗?请看编辑后的问题这是建议还是解决方案?这会有什么帮助?这是我案子的一个解决方案。DirectoryInfo.Exists始终返回false,而DirectoryInfo.Exists(DirectoryInfo.FullName)始终返回true。但我还是不明白为什么一个比另一个有效?!