5

ローカル ディレクトリから samba 共有にファイルをコピーするように設定された Windows サービスがあります。

このサービスは、UNC パスを介してサーバーに接続します (つまり、\remoteserver\shareddir)。

サービスが実行されているユーザーとしてログインし、UNC パスを使用して、samba 共有でファイルのコピーとファイルの作成の両方を行うことができました。

ただし、サービスを実行すると、ログイン エラーを示唆する io 例外が発生します。そのボックスでプロセス モニターを実行し、サービスを監視したところ、UNC パスが検出されましたが、共有に書き込もうとするとログイン エラーが発生しました。

これは、プレーンなバニラ .net System.IO.File.Copy 呼び出しを使用しています。

同じユーザーでログインすると、共有にファイルをコピーして作成できるため、エラーがわかりません。

何か案は?

編集:例外テキスト

メイン処理ループ (DoWork()) でエラーが発生しました: ログオンに失敗しました: 不明なユーザー名またはパスワードが正しくありません。

System.Exception: MyService.ProcessExportTransferfileDirectories のエラーと値: D:\Export、\RemoteServer\intray、D:\Export\Archive ---> System.IO.IOException: ログオン失敗: 不明なユーザー名またはパスワードが正しくありません。

System.IO.__Error.WinIOError(Int32 errorCode, String MaybeFullPath) で System.IO.__Error.WinIOError() で System.IO.File.Move(String sourceFileName, String 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()

4

4 に答える 4

4

それは最終的にパーミッションの問題でした-問題なく実行されたsamba共有でセットアップされた別のユーザーとしてサービスを実行した後、ファイルをコピーしました。

別のアカウントを使用しているときに、Windows エクスプローラーを使用して共有上のファイルをコピー/作成できたのに、サービスが同じアカウントで実行されていたときに、共有にまったくアクセスできなかった理由をまだ理解していません :(

于 2009-05-13T18:22:07.443 に答える
2

最初にドライブをマップしてから、共有ではなくマップされたドライブにファイルコピーを実行することをお勧めします。

dosnetuseコマンドを使用してドライブをマップできます。例えば:

System.Diagnostics.Process.Start("net", "use h: \remoteserver\shareddir /User:domian\me password")

これにより、ログインの問題が解決するはずです。

于 2009-05-12T19:43:01.363 に答える
1

あなたの状況で非常に役立つツールはprocess monitorです。管理者として実行し、次のフィルターを追加するだけです。

Process Name is "your_process.exe" AND Operation is "CreateFile"

プロセスが使用しようとしているファイルに関する詳細情報が表示されます。

于 2009-05-12T19:40:54.347 に答える
0

前述のように、サービスが実行されているのと同じアカウントでログインすると、共有へのコピーとファイルの作成に問題はありません。–1分前にOded

サービスが実行されているユーザーアカウントに、ローカルセキュリティポリシーの「サービスとしてログオン」権限を付与しましたか?

于 2009-05-12T19:44:51.280 に答える