Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件获取";“锁定”;移动操作时,iis给出401错误_C#_File_Iis_Http Status Code 401 - Fatal编程技术网

C# 文件获取";“锁定”;移动操作时,iis给出401错误

C# 文件获取";“锁定”;移动操作时,iis给出401错误,c#,file,iis,http-status-code-401,C#,File,Iis,Http Status Code 401,我使用本地系统帐户运行windows服务 我的程序所做的是: if (File.Exists(outputPath)) { File.Delete(outputPath); } File.Move(archivePath, outputPath); 相关文件夹是iis的应用程序文件夹,其中其应用程序池的标识是位于c:\MyAppFolder下的ApplicationPoolIdentity 我的windows服务每天执行几次,我的客户端每隔5分钟(0,5,10,15…)检查是否存在任

我使用本地系统帐户运行windows服务

我的程序所做的是:

if (File.Exists(outputPath))
{
    File.Delete(outputPath);
}
File.Move(archivePath, outputPath);
相关文件夹是iis的应用程序文件夹,其中其应用程序池的标识是位于c:\MyAppFolder下的ApplicationPoolIdentity

我的windows服务每天执行几次,我的客户端每隔5分钟(0,5,10,15…)检查是否存在任何新版本,并下载该文件

有时,文件会以某种方式被“锁定”在文件系统上

  • iis给出401错误
  • 无法删除文件
我的第一个问题是,我该如何应对这种情况?

由同事完成的一个补丁是:

var fs = File.GetAccessControl(outputPath);
fs.SetAccessRuleProtection(false, false);
File.SetAccessControl(outputPath, fs);
虽然这个补丁,但似乎又出现了错误

我可以申请,也可以申请解决方案

这些解决方案是足够的还是必要的


同样,我的第一个问题是重要的“复制问题”,并理解为什么会发生这种情况。

客户端可能没有做正确的事情,或者您的服务不正确,或者您有其他应用程序像病毒检查器之类打开文件,还有哪些文件被拒绝访问,
archivePath
outputPath
@一般我认为这不是问题所在,也不是经常发生的事情,windows不只是为了好玩而锁定文件,.net也不例外,我严重怀疑
文件中是否存在bug。删除
文件。移动
反病毒是否仍在扫描该文件?我有过类似的防病毒阻止文件,但我也看到一些意外情况,原因是GDI内存泄漏。我过去常常在制作过程中得到一些关于谁在阻塞的确凿事实(在知道是什么之前,从来无法在测试环境上重新编程)。你需要在试抓时立即打电话给handle。