【发布时间】:2014-07-07 20:14:18
【问题描述】:
我拥有的控制台应用程序的一部分用于从我们使用的服务器上的目录中删除不需要的订单文件。当我在本地机器上运行它时,这部分代码工作正常,但是当我们在它自己的服务器上运行它时(这将是一个计划任务),它不再删除文件。
try
{
System.IO.File.Delete(@"\\ServerName\ProductionFileShare\Orderfiles\FileDir\" + fileName);
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
文件名就是 storeorder.txt。
正如我所说,这在我的本地计算机上运行良好,但当我们从服务器本身运行此程序时不会删除文件。有什么想法吗?
更新:异常消息是:进程无法访问文件 '\ServerName\ProductionFileShare\Orderfiles\FileDir\storeorder_07062014_16-25-0.txt',因为它正被另一个进程使用。
这对我来说很奇怪,因为它可以在我的电脑上运行。我将添加一些垃圾回收器,看看会发生什么。
更新 #2:显然修复了它!这是一个意想不到的解决方案。感谢大家抽出宝贵时间发表评论,非常感谢。
【问题讨论】:
-
而异常中的错误信息是?
-
本地系统帐户可能没有删除文件的权限。例外应该指向你。
-
运行任务的帐户可能没有访问网络共享的权限(即使它在同一台机器上)。也许本地文件系统路径 (d:\orderfiles\...) 会起作用。但更多细节将有助于解决问题。
-
假设您在本地计算机上使用与服务器上相同的凭据运行,另一种可能性是在服务器上启用了用户帐户控制 (UAC)。如果是这样的话:*.com/questions/3925065/…