Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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# 从http站点下载文件失败,错误为“0”;System.IO.IOException';_C#_Asp.net_.net - Fatal编程技术网

C# 从http站点下载文件失败,错误为“0”;System.IO.IOException';

C# 从http站点下载文件失败,错误为“0”;System.IO.IOException';,c#,asp.net,.net,C#,Asp.net,.net,从HTTP站点下载文件失败,出现错误 “System.IO.IOException:进程无法访问文件'c:\temp\python-3.8.0-amd64.exe',因为另一个进程正在使用该文件。” 检查该位置上的文件是否可用 检查IIS中的MIME配置 同时检查对目标的访问权限 client.DownloadFileCompleted+=WcOnDownloadFileCompleted; 私有静态void WcOnDownloadFileCompleted(对象发送方,AsyncComple

从HTTP站点下载文件失败,出现错误

“System.IO.IOException:进程无法访问文件'c:\temp\python-3.8.0-amd64.exe',因为另一个进程正在使用该文件。”

  • 检查该位置上的文件是否可用
  • 检查IIS中的MIME配置
  • 同时检查对目标的访问权限
  • client.DownloadFileCompleted+=WcOnDownloadFileCompleted;
    私有静态void WcOnDownloadFileCompleted(对象发送方,AsyncCompletedEventArgs e)
    {
    如果(!e.Cancelled&&e.Error==null)
    {
    //异步下载已成功完成
    }
    handle.Set();//在这两种情况下,让void main()知道异步事件已完成,以便我可以退出
    }
    
  • 打开任务管理器
  • 转到“流程”选项卡
  • 在列表中搜索“python-3.8.0-amd64.exe”
  • 如果它在那里,那么右键单击它并选择结束任务
  • 现在运行您的代码,应该可以了

  • 我猜它是“因为它正被另一个进程使用”,你觉得呢?我第一次运行它,在下载之前不确定使用的是哪个文件。可能是任何其他方法或您的防病毒软件。可能是病毒扫描程序,请尝试重新启动电脑。此外,您可以使用SysInternals、ProcessMon或FileMon或其他工具查看它对哪个程序没有帮助。是的,它可用。我可以使用PowerShell下载该文件尝试为WebClient实现DownloadFileCompleted
    url = "http://ip:43/installer/python-3.8.0-amd64.exe"
    Uri uri = new Uri(url);
    filename = uri.Segments[uri.Segments.Length - 1];
    installer_path = $@"c:\Temp\{filename}";
    
    using (var client = new WebClient())
    {
       client.DownloadFile(url, installer_path);
       client.Dispose();
    }