2016-11-21 8 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ユーザーとして実行されていることがわかります。 NETWORK SERVICEユーザーは、ユーザープロファイルにアクセスできません。

なぜファイルを保存しようとしているのかわからなくても、できることを提案するのは難しいです。しかし、それがあなたのサービスによって生産されたら、これからもやり続けることがあれば、私はあなたの最終的な解決策を今実装しています。私はおそらくBlobストレージ、またはおそらく何らかの種類のデータベースに保存していると思います。

+0

問題は、このファイルを外部環境に保存できないことです。共有フォルダである必要があります。 – gog

+0

私は、オンサイトではなく、クラウド内でService Fabricを実行した経験があります。しかし、このSOの質問は、differnetユーザーとして実行可能なサービスファブリックを実行するいくつかの方法を提供するようです。そのようにして、サービスを共有フォルダにアクセスできるドメインユーザーとして実行できます。http://stackoverflow.com/questions/39126630/how-to-run-a-service-fabric-application-with-different- security-permissions – Ziv

+0

そしてRunAsの機能に関する公式のドコモがあります:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-runas-security – Ziv

関連する問題