2016-11-21 69 views
1

我開發服務結構無狀態服務應用程序,並且在某些時候我需要下載文件並將其保存到我的桌面文件夾,但即使我以管理員身份運行,我也會收到錯誤:在服務結構應用程序中拒絕訪問路徑

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); 
       } 
     } 
    } 

進出口檢驗捉迷藏本地調試集羣但是當我部署它,我想保存到網絡路徑。

回答

1

如果您運行任務管理器並轉到詳細信息選項卡,您會看到Service Fabric的進程(Fabric.exe,FabricGateway.exe和其他)以NETWORK SERVICE用戶身份運行,而不是您自己的用戶帳戶。網絡服務用戶無權訪問您的用戶配置文件。

如果不知道你爲什麼試圖保存文件,很難建議你能做什麼。但是,如果這是您的服務將其投入生產後繼續執行的事情,那麼我現在就實施您的最終解決方案。我想這可能是保存到Blob存儲,或者可能是某種數據庫。

+0

問題是我無法將這些文件保存在外部環境中,它必須是共享文件夾。 – gog

+0

我只有在雲中運行服務結構的經驗,而不是預設。但是,這個SO問題似乎提供了幾種以不同用戶身份運行服務結構可執行文件的方法。這樣,您就可以以有權訪問共享文件夾的域用戶身份運行服務:http://stackoverflow.com/questions/39126630/how-to-run-a-service-fabric-application-with-different-安全權限 – Ziv

+0

以下是RunAs功能的官方doco:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-runas-security – Ziv