我正在开发一个服务结构无状态服务应用程序,有时我需要下载一个文件并将其保存到我的桌面文件夹中,但即使我以管理员身份运行,我也会收到错误:
Access to the path 'C:/Users/me/Desktop/filename' is denied
using (var response = await _httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseHeadersRead))
{
using (var streamToReadFrom = await response.Content.ReadAsStreamAsync())
{
var fileName = $"C:\\Users\\me\\Desktop\\{name}{DateTime.Now.ToString("yyyyMMdd")}";
using (var streamToWriteTo = File.Create(fileName))
{
await streamToReadFrom.CopyToAsync(streamToWriteTo);
}
}
}
我正在测试运行本地调试集群,但当我部署它时,我想保存到网络路径。
最佳答案
如果运行任务管理器并转到“详细信息”选项卡,您将看到 Service Fabric 的进程(Fabric.exe、FabricGateway.exe 等)正在以 NETWORK SERVICE 用户身份运行,而不是您自己的用户帐户。 NETWORK SERVICE 用户无权访问您的用户个人资料。
如果不了解更多关于尝试保存文件的原因,就很难建议您可以做什么。但是,如果您的服务投入生产后您将继续这样做,那么我现在就实现您的最终解决方案。我猜这可能会保存到 Blob 存储,或者某种数据库。
关于c# - Service Fabric 应用程序拒绝访问路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40721520/