Windowsサービスがシェアをファイルにコピーすることはできません
-
21-08-2019 - |
質問
私は、Samba共有にローカルディレクトリからファイルをコピーするように設定するWindowsサービスを持っています。
サービス(すなわち\のRemoteServer \ shareddir)サーバーへのUNCパスを介して接続します。
私は、UNCパスを使用して、サービスを実行するユーザーとしてログインし、両方のコピーのファイルにできたとSambaの共有上のファイルを作成しています。
サービスを実行しているときにしかし、私は、ログインエラーを示唆IO例外を取得しています。私は、サービスを見て、そのボックスにプロセスモニタを実行していると私はそれがUNCパスを見つけることが、共有への書き込みをしようとすると、ログインエラーを取得見ることができます。
これは、プレーンバニラ.NET System.IO.File.Copyコールを使用しています。
同じユーザーでログインしたときに、私は共有にファイルをコピーして作成することができる午前として、私は、エラーを理解していない。
任意のアイデア?
の編集:例外テキストの
メインの処理ループでエラーが発生しました (DoWork()):ログオン失敗:不明 ユーザー名またはパスワードが間違っています。
のSystem.Exception:エラーについて MyService.ProcessExportTransferfileDirectories そして、値:D:\輸出、 \のRemoteServer \のintray、 D:\輸出\アーカイブ---> System.IO.IOException:ログオン失敗: 不明なユーザー名またはパスワードが間違っています。
で System.IO .__ Error.WinIOError(のInt32 errorCode、文字列maybeFullPath)で System.IO .__ Error.WinIOError()で System.IO.File.Move(文字列 SourceFileNameは、文字列destFileName)
に MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile(文字列 sourceFolder、文字列targetFolder、 文字列archiveFolder、文字列 rootFolder、LogCategory logCategory、 LogCounter logCounter)---の終了 内部例外スタックトレース--- MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile(文字列 sourceFolder、文字列targetFolder、 文字列archiveFolder、文字列 rootFolder、LogCategory logCategory、 LogCounter logCounter)で MyService.Consumer.BusinessLogic.WmsFacade.ProcessExportTransfer(IDictionary`2 fileDirectories)で MyService.Core.TimedWorkerProvider.DoWork()
解決
これは、アクセス許可の問題になってしまった - 。全体でファイルをコピーし、それは問題なく走ったSamba共有に設定した別のユーザーとしてサービスを実行した後に
は、まだ別のアカウントを使用しているとき、なぜ私はコピー/ Windowsエクスプローラを使用して、共有上のファイルを作成しますが、サービスは、同じアカウントで実行されたとき、それはすべての共有にアクセスすることができなかった可能性が理解していない:(
他のヒント
私が最初にドライブをマップして、代わりに株式のマップされたドライブへのファイルコピーを行うことをお勧めします。
あなたはドスnet useコマンドを使用してドライブをマップすることができます。たとえばます:
System.Diagnostics.Process.Start("net", "use h: \remoteserver\shareddir /User:domian\me password")
これは、任意のログインの問題を解決する必要があります。
あなたの状況で非常に有用なツールは、プロセスモニタです。ただ、管理者として実行し、次のフィルタを追加します:
Process Name is "your_process.exe" AND Operation is "CreateFile"
あなたは、あなたのプロセスが使用しようとしているファイルの詳細情報が表示されます。
で述べたように、ときに私にログイン サービスがあることを同じアカウント 私は何の問題のコピーを持っていない、として実行されています 共有上のファイルを作成します。 - オデッド1分前
あなたがユーザーに付与しましたサービスは、ローカルセキュリティポリシーの「サービスとしてログオン」権限??
として実行されているアカウント