2

我遇到了一个奇怪的问题,我有一个更新程序的简单服务,它可以很好地下载文件,资源管理器显示它,但是下载后一两秒钟它就从资源管理器中消失了;并且下载后刚刚运行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,它没有阻止它,在没有下载部分的情况下测试了加载代码,工作正常,只有当我尝试下载它时才会出现问题。

4

2 回答 2

1

我发现是我的服务器有问题,文件名应该是改的,但是没有,所以当我调用 WebClient.DownloadFile 时,它​​找不到要下载的文件,所以它有一个 0 字节删除它之前在磁盘上的文件,因为没有什么可下载的。

于 2012-08-17T18:52:52.537 回答
0

您向 root 写入文件C非常有说服力。

您的程序可能没有正确的写入权限,C:而不是获得异常,File VirtualStore 启动并virtualized访问您的文件。

尝试搜索它test.exe,您可能会在某个不起眼的位置找到它,例如

C:\Users\User_name\AppData\Local\VirtualStore.
于 2012-08-17T06:35:21.880 回答