2017-01-11 2 views
0

J'ai une application C# qui appelle un fichier WebDAV comme s'il s'agissait d'un partage de fichiers réseau.L'appel d'un résultat WebDAV "Réseau" entraîne l'affichage du message "Le chemin réseau n'a pas été trouvé"

Ex:

var file = File.ReadAllText(@"\\server\WebDAVRoot\file.txt"); 

Cependant, parfois (apparemment de façon sporadique) ce rendement "chemin réseau n'a pas été trouvé". Lorsque je suis à distance au serveur & vérifier le partage, comme par magie le code commence à fonctionner.

Quel est le problème ici?

Répondre

0

Le problème ici est que .NET ne peut pas accéder aux partages WebDAV à moins que le service WebDAV ait déjà été déclenché par le déclencheur par l'utilisateur.

Par défaut, ce service est le service "WebClient". Certains serveurs ne sont même pas installés par défaut (vous pouvez résoudre ce problème en ajoutant la fonctionnalité "Expérience de bureau" du Gestionnaire de serveur).

Une fois que WebDAV est installé sur le serveur, WebClient par défaut est défini sur "Manuel (Démarrage du déclencheur)". Le déclencheur permettant d'activer le service est un appel Explorer vers un partage WebDAV. Par conséquent, le code .NET ne déclenchera pas le démarrage du service.

Vous pouvez résoudre ce quelques façons - je l'ai résolu en mettant le service WebClient à « automatique » mais vous pouvez également vérifier l'état de service/démarrer le service à l'intérieur du code C# en utilisant la classe ServiceController.