我正在开发一个Windows应用商店应用程序,我正在使用WebRequest将文件上传到FTP服务器,因为这是我能找到的唯一可行的工作,具有我的限制。
当应用程序上传视频时需要几分钟,如果用户点击屏幕,应用程序将崩溃。如果没有输入,它将正常工作。
当我使用Alex Pilotti的FTPS客户端DLL时,这没有发生,但我无法使用此DLL获得Windows商店的认证。
在我的电脑中,这不会发生。它将等到视频上传后再执行用户输入,但在平板电脑中它是一个不同的故事,可能是因为它的处理能力/内存较少,只是崩溃。
我在想:也许有一种方法可以在上传过程中忽略所有用户输入。
我知道这不是最好的方法,从这样的用户那里获得控制权,但它会完成这项工作而且只会持续几分钟。
我一直在谷歌搜索,但我找不到办法做到这一点。
我会在下面留下我的代码,以防万一:
Public Async Function uploadFile(filename As String, file As StorageFile) As Task(Of Boolean)
Try
Dim ftpURL As String = "ftp://111.22.33.444"
Dim request As WebRequest = WebRequest.Create(ftpURL + "/" + filename)
request.Credentials = New NetworkCredential("user", "pass")
request.Method = "STOR"
Dim buffer As Byte() = Await ReadFileToBinary(filename, file)
Dim requestStream As Stream = Await request.GetRequestStreamAsync()
Await requestStream.WriteAsync(buffer, 0, buffer.Length)
Await requestStream.FlushAsync()
Return True
Catch ex As Exception
Return False
End Try
End Function
答案 0 :(得分:0)
我用一行非常简单的代码解决了这个问题:
Await Task.Run(Function() uploadFile(filename, file))
为我工作。