我遇到了一个奇怪的问题,我有一个更新程序的简单服务,它下载文件很好,资源管理器显示它,但只是一两秒后它已经从资源管理器中消失了;下载后运行exe的服务无法启动它,因为它显然不存在。
protected override void OnStart(string[] args)
{
Update();
}
public void Update()
{
WebClient WebClient = new WebClient();
WebClient.DownloadFile("http://xxxxxxx/xx/test.exe", @"C:\test.exe");
Load(); //Just runs the exe file.
}
我检查了我的AV,它没有阻止它,测试加载代码没有下载部分,工作正常,问题只发生在我尝试下载时。
答案 0 :(得分:1)
我发现这是我服务器的问题,文件名应该被更改,但事实并非如此,所以当我调用WebClient.DownloadFile时,它找不到要下载的文件,所以它有删除之前磁盘上的0字节文件,因为没有可下载的内容。
答案 1 :(得分:0)
您向C
root写入文件非常有说服力。
您的程序可能没有正确的权限来写入C:
而不是获得例外,文件VirtualStore会启动并virtualized
您的文件访问权限。
尝试搜索test.exe
,您可能会在一些不起眼的位置找到它,例如
C:\Users\User_name\AppData\Local\VirtualStore.