我正在尝试使用Portable-WebDAV-Library但我的代码对WebDAV存储执行写操作
var credentials = new NetworkCredential("user", "password");
var webDavSession = new WebDavSession(@"https://...", credentials);
Uri uri = new Uri("https://.../SubDir/somefile.txt");
try
{
using (MemoryStream ms = new MemoryStream())
{
using (StreamWriter sw = new StreamWriter(ms))
{
sw.Write(DateTime.Now.ToString("G"));
sw.Flush();
ms.Position = 0;
}
await webDavSession.UploadFileAsync(uri, ms);
}
}
catch (Exception ex)
{
}
引发异常“由于该流不可读,因此无法将指定的流用作Windows运行时IInputStream。”我已经试验了IRandomAccessStream和IOutputStream,但是产生了其他异常。
答案 0 :(得分:0)
问题在于,StreamWriter
在其using块结束时关闭了MemoryStream
。因此,将}
从await webDavSession.UploadFileAsync(uri, ms);
的前面移到后面可以解决此问题:
之前:
ms.Position = 0;
}
await webDavSession.UploadFileAsync(uri, ms);
之后:
ms.Position = 0;
await webDavSession.UploadFileAsync(uri, ms);
}