###前提・実現したいこと
IIS10上で動作するWebアプリケーション(ASP.NET C#)において、
WebサーバからLAN上(同WORKGROUP上)の共有フォルダに存在するファイルを
Webサーバのローカルフォルダにコピーする処理を実行したいと考えております。
※ドメインの運用はしておりません。
- アプリケーションプールにはDefaultAppPool(.Net CLR v4.0 統合)を使用しております。
- Webサーバの認証はWindows認証ではなく、identityのフォーム認証(個人 ユーザー アカウント)を使用しております。
- LAN上の共有フォルダについては、Everyoneにフルコントロール権限を付与しており、コピー先のWebサーバのローカルフォルダには、IIS AppPool\DefaultAppPool にフルコントロール権限を付与しております。
###プロジェクト構成
- Visual Studio Professional 2017
- ASP.NET MVC5.2.3
- .NET Framework 4.6.1
- EntityFramework 6.1.3
- ASP.NET Identity 2.2.1
- IIS10
###発生している問題・エラーメッセージ
Webページからのリクエストに応じて、以下のようなコードでrobocopyコマンドを使用し、
指定の共有フォルダからWebサーバのローカルフォルダにコピーをしたいと考えましたが、
実行結果はExit Code 16(did not copy any files. )となってしまいました。
同様のコマンドをログインユーザで実行したところ、問題なくコピーが行えたため、
恐らくIIS AppPool\DefaultAppPoolに権限がないため、コピーを実行できていないものと考えております。
C#
1public static int ProcessCommand(string SolutionDirectory, string TargetDirectory) 2{ 3 var startInfo = new ProcessStartInfo(); 4 startInfo.WorkingDirectory = @"C:\hoge"; 5 startInfo.UseShellExecute = false; 6 startInfo.FileName = "robocopy"; 7 //startInfo.Verb = "RunAs"; 8 9 startInfo.Arguments = $"\"{SolutionDirectory}\" \"{TargetDirectory}\" /MIR"; 10 Process process = Process.Start(startInfo); 11 process.WaitForExit(); 12 return process.ExitCode; 13}
###アドバイスいただきたいこと
セキュリティに関する懸念はともかく、どんな形でもよいので、実現方法のヒントをいただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/01 09:43
退会済みユーザー
2017/05/01 10:43
2017/05/19 04:07