2009-05-20 7 views
2

Je dispose d'un service Windows qui déplace les fichiers d'un dossier surveillé (IO.FileSystemWacher) vers un partage UNC sur un réseau.Service Windows écrit des fichiers sur le partage réseau

Le partage réseau est sécurisé, mais la part a le contrôle complet de l'utilisateur du service; malgré cela, j'ai des problèmes avec le chemin du fichier n'est pas trouvé.

Je me propose de faire passer le service (en cours) utilisateur, mais ne suis pas sûr que ce soit la bonne façon d'aller à ce sujet.

Des idées?

+0

Si vous ne trouvez pas le chemin d'accès au partage UNC, vous utilisez peut-être simplement le mauvais chemin. Ou obtenez-vous une sorte de message d'accès refusé. –

+0

C'est un message d'accès refusé, dirigé vers le compte de domaine que je reçois. Le compte de domaine sous lequel il s'exécute ne dispose pas de droits de connexion interactifs, mais il a accès à des partages spécifiques sur le réseau et peut exécuter des applications et des services sur la machine hôte. – Hooloovoo

Répondre

2

Vérifiez ces:

  • est votre utilisateur de service est un compte de domaine? (le compte local ne le fera pas)
  • L'utilisateur du service dispose-t-il d'une autorisation d'écriture NTFS sur le partage UNC? (l'autorisation au niveau du partage ne suffit pas, doit également avoir la permission NTFS)
+0

Vous pourriez très bien être sur quelque chose avec les autorisations NTFS et Share étant différentes. Ils sont, et il y a maintenant un cas soulevé avec l'équipe d'infrastructure des fournisseurs. Merci – Hooloovoo

0

Essayez accorder le compte de la machine de l'ordinateur qui exécute l'accès au service à la part. Alternativement, exécutez le service sous un compte de domaine (qui a évidemment accès au partage)

+0

Je n'ai pas ces privilèges. Je travaille sur un site client, et c'est l'une des 3 machines auxquelles j'accède directement. Je peux accéder à nos serveurs Web et à nos instances de base de données, mais je ne peux pas accéder à d'autres machines. – Hooloovoo

2

Tout d'abord, vérifiez le chemin est ce que vous pensez qu'il est.

Pour vérifier les autorisations que vous pouvez exécuter Internet Explorer sous l'identité du compte de service (faire runas), puis mettre le chemin dans la zone URL pour vérifier le compte de service peut accéder au chemin.

+0

Je peux mapper au disque en utilisant si je me connecte en tant que compte de service. Le partage existe, je n'arrive tout simplement pas à accéder au fichier. – Hooloovoo

0

Comment accédez-vous au partage? N'est-ce pas le répertoire monté? Donc disons que \ server1 \ direcotry1 est monté sur z: \ directory1 ou quelque chose comme ça. Si c'est le cas, vous devez vous assurer que l'utilisateur du service "voit" le répertoire monté. Ou aller avec le chemin UNC standard (avec double \).

+0

Le partage est en cours d'accès à l'aide d'un chemin UNC standard. – Hooloovoo

0

Le FileSystemWatcher échouent toujours de se connecter au partage UNC ou se fait-il après le veilleur est en cours d'exécution?

J'ai vu que si vous redémarrez une machine où le dossier surveillé réside, le FileSystemWatcher en cours d'exécution sur une autre machine ne sera plus voir les événements de changement. Pour contourner ce problème, vous devrez redémarrer l'observateur. Je crois que vous pouvez utiliser la propriété EnableRaisingEvents pour le faire.

+0

Tim, si vous lisez attentivement la question, il ne spécifie pas qu'un FileWatcher regarde un partage UNC. De quoi parlez-vous est un vrai problème avec le FileSystemWatcher. Avez-vous vu ceci: http://www.codeproject.com/KB/vb/AdvancedFileSystemWatcher.aspx – RichardOD

+0

L'une des premières choses que j'ai vérifiées quand j'ai commencé ce développement était que je pouvais regarder un partage UNC avec le filewatcher. Les fichiers dans le dossier surveillé sont déplacés afin qu'ils puissent être traités. – Hooloovoo

Questions connexes