2009-05-20 9 views
2

監視対象のフォルダ(IO.FileSystemWacher)からネットワーク上のUNC共有にファイルを移動するWindowsサービスが実行されています。ファイルをネットワーク共有に書き込むWindowsサービス

ネットワーク共有はセキュリティ保護されていますが、共有はサービスユーザーに対して完全な制御権を持ちます。これにもかかわらず、ファイルパスが見つからないという問題が発生します。

私はサービス(現在の)ユーザーになりすますつもりですが、これが正しいかどうかは分かりません。

アイデア?

+0

UNC共有のパスが見つからない場合は、間違ったパスを使用している可能性があります。それとも、何らかのアクセス拒否メッセージが出ますか? –

+0

アクセス拒否のメッセージです。取得したドメインアカウントに転送されます。 このドメインアカウントは、対話型のログオン権限を持ちませんが、ネットワーク上の特定の共有にアクセスできるだけでなく、ホストマシン上でアプリケーションとサービスを実行することもできます。 – Hooloovoo

答えて

2

これらをチェックしてください:

  • は、あなたのサービスのユーザーは、ドメインアカウントですか? (ローカルアカウントは行いません)
  • サービスユーザーはUNC共有に対してNTFS書き込み許可を持っていますか? (共有レベルのアクセス権では不十分で、NTFSアクセス許可も必要です)
+0

NTFSと共有の権限が異なる場合は、非常にうまくいく可能性があります。それらは存在し、ベンダーのインフラストラクチャチームと提携したケースがあります。 ありがとう – Hooloovoo

0

共有へのサービスアクセスを実行しているコンピュータのマシンアカウントを許可するようにしてください。 または、ドメインアカウント(サービスには明らかにアクセス権があります)でサービスを実行してください。

+0

私はこれらの特権を持っていません。私は顧客のサイトで働いており、これは私が直接アクセスできる3台のマシンの1つです。 Webサーバーとデータベースインスタンスにアクセスできますが、他のマシンにアクセスすることはできません。 – Hooloovoo

2

まず、パスを確認してください。

アクセス許可を確認するには、サービスアカウントのID(runas)でInternet Explorerを実行し、URLボックスにパスを入力して、サービスアカウントがパスにアクセスできることを確認します。

+0

サービスアカウントとして接続すると、ドライブにマップできます。共有が存在する、私はファイルにアクセスできないようだ。 – Hooloovoo

0

どのように共有にアクセスしていますか?万が一、マウントされたディレクトリではありませんか?ですから、\ server1 \ direcotry1がz:\ directory1などにマウントされているとしましょう。そうであれば、サービスユーザがマウントされたディレクトリを「見」ていることを確認する必要があります。または、標準のUNCパス(double \)を使用してください。

+0

標準UNCパスを使用して共有にアクセスしています。 – Hooloovoo

0

FileSystemWatcherは常にUNC共有への接続に失敗しますか、ウォッチャーの実行後に発生しますか?

監視フォルダが存在するマシンを再起動すると、別のマシンで動作しているFileSystemWatcherに変更イベントが表示されないことがあります。この問題を回避するには、ウォッチャーを再起動する必要があります。私はあなたがこれを行うにはEnableRaisingEventsプロパティを使用することができると信じています。

+0

Tim、質問を丁寧に読んだら、彼はFileWatcherがUNC共有を見ているとは指定していません。あなたはFileSystemWatcherの本当の問題だと言っています。これを見たことがありますかhttp://www.codeproject.com/KB/vb/AdvancedFileSystemWatcher.aspx – RichardOD

+0

私がこの開発を始めたときに確認した最初の事の一つは、ファイルウォッチャーとUNCの共有を見ることができたということでした。監視フォルダ内のファイルは、処理できるように移動されます。 – Hooloovoo

関連する問題