監視対象フォルダー(IO.FileSystemWacher)からネットワーク上のUNC共有にファイルを移動するWindowsサービスを実行しています。
ネットワーク共有は保護されていますが、共有はサービスユーザーを完全に制御できます。それにもかかわらず、ファイルパスが見つからないという問題が発生します。
私はサービス(現在の)ユーザーになりすますつもりですが、これがこれを行う正しい方法であるかどうかはわかりません。
アイデア?
監視対象フォルダー(IO.FileSystemWacher)からネットワーク上のUNC共有にファイルを移動するWindowsサービスを実行しています。
ネットワーク共有は保護されていますが、共有はサービスユーザーを完全に制御できます。それにもかかわらず、ファイルパスが見つからないという問題が発生します。
私はサービス(現在の)ユーザーになりすますつもりですが、これがこれを行う正しい方法であるかどうかはわかりません。
アイデア?
まず、パスがあなたが思っているものであることを確認します。
アクセス許可を確認するには、サービスアカウントのIDでInternet Explorerを実行し(runasを実行)、[URL]ボックスにパスを入力して、サービスアカウントがパスにアクセスできることを確認します。
これらを確認してください:
どのように共有にアクセスしていますか?たまたまマウントされたディレクトリではないですか?したがって、\ server1 \ direcotry1がz:\directory1などにマウントされているとします。その場合は、サービスユーザーがマウントされたディレクトリを「見る」ことを確認する必要があります。または、標準のUNCパス(doubleを使用\
)を使用します。
FileSystemWatcherは常にUNC共有への接続に失敗しますか、それともウォッチャーの実行後に発生しますか?
監視対象フォルダーが存在するマシンを再起動すると、別のマシンで実行されているFileSystemWatcherに変更イベントが表示されなくなることを確認しました。これを回避するには、ウォッチャーを再起動する必要があります。これを行うには、EnableRaisingEventsプロパティを使用できると思います。
サービスを実行しているコンピューターのマシンアカウントに共有へのアクセスを許可してみてください。または、ドメインアカウント(明らかに共有にアクセスできる)でサービスを実行します