c#的一个bug,File.Exists() 对网络映射盘上的文件,不论存在与否,一律返回false。FileInfo类也有同样的问题。换成本地硬盘上的文件,能正确返回。
解决方案 »
- ASP.NET如何接收JQuery通过AJAX POST的JSON对象??
- asp.net 批量上传图片
- jquery-easyui 分页 C# .net
- 网站统计
- 请问怎样才能提取变量中前100个符?
- 在一存储分页页面的第二页点一按钮操作后,页面又回到了第一页是为什么,怎么解决?
- 文件路径问题
- 我基本上会使用了datagrid 了, 但是还没有用过datalist , 请问这个东西一般用在什么地方?
- 菜鸟的问题:怎样判断数据库中是否存在相应的记录?
- 关于StringBuilder截取的问题?
- 换了系统盘,项目无法启动调试
- 请问各位高人 ASP.NET(c#)中如何取得当前计算机CPU 内存使用率等相关信息?
File.Exists()本身没有问题。您可以试一下,在Winform中完成同样的功能不会出任何错误。
之所以在ASP.NET上对其他机器上的共享文件,不论存在与否,一律返回false,主要是用户权限的问题。当运行ASP.NET程序时,并不是以当前用户权限运行,而是以ASPNET用户权限。处于安全方面考虑,该权限在VS.NET正式版有比较严格的限制。当ASPNET权限无权查看该共享文件,则返回false。有一个workaround:您可以更改该ASP.NET程序的用户权限,在Web.config文件中为该ASP.NET应用程序指定一个特定的用户:
<identity impersonate="true" userName="accountname" password="password" />
经过测试,这时应该能够直接检测到其他机器的共享文件是否存在:
bool a = File.Exists("\\OtherComputer\share\test.txt");
(检测网络映射盘上的文件仍会有问题)。希望这样一个变通的方案能对您有所帮助。关于ASP.NET程序权限的修改,您可以参考:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306158&SD=MSKB&======================
- 微软全球技术中心本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
======================
“指定的登录会话不存在。可能已被终止。 ”,在策略里赋予权限也白瞎。改Machine.config文件里的用户也无效。照网页上的方式改程序也不行。我没招了。谁还有什么主意?
Machine.config里这么改对吗?
<processModel enable="true" timeout="Infinite" idleTimeout="Infinite" shutdownTimeout="0:00:05" requestLimit="Infinite" requestQueueLimit="5000" restartQueueLimit="10" memoryLimit="60" webGarden="false" cpuMask="0xffffffff" userName="SYSTEM" password="AutoGenerate" logLevel="Errors" clientConnectedCheck="0:00:05" comAuthenticationLevel="Connect" comImpersonationLevel="Impersonate" responseRestartDeadlockInterval="00:09:00" responseDeadlockInterval="00:03:00" maxWorkerThreads="25" maxIoThreads="25"/>能不能把你的修改和代码贴出来?
<processModel enable="true" timeout="Infinite" idleTimeout="Infinite" shutdownTimeout="0:00:05" requestLimit="Infinite" requestQueueLimit="5000" restartQueueLimit="10" memoryLimit="60" webGarden="false" cpuMask="0xffffffff" userName="SYSTEM" password="AutoGenerate" logLevel="Errors" clientConnectedCheck="0:00:05" comAuthenticationLevel="Connect" comImpersonationLevel="Impersonate" responseRestartDeadlockInterval="00:09:00" responseDeadlockInterval="00:03:00" maxWorkerThreads="25" maxIoThreads="25"/>
aspnet的权限还要改嘛?代码用不用修改?策略里还要改嘛?(我统统试过)你怎么设的?能不能把代码和processModel贴出来看看?