Les raisons D'une erreur HTTP 409 / Conflict lors du téléchargement d'un fichier vers sharepoint en utilisant a.NET WebRequest?

j'ai une méthode qui utilise un WebRequest pour télécharger un fichier dans une liste/un dossier sharepoint 2010, en utilisant une requête PUT, avec L'en-tête Overwrite défini à T (overwrite).

lorsque plusieurs fichiers sont téléchargés (la méthode est appelée plusieurs fois), certaines requêtes échouent avec une erreur HTTP 409 Conflict.

j'ai googlé, et il semble que la raison la plus fréquente est d'essayer d'affecter/mettre à jour un fichier qui n'existe pas (comme définir L'URL de la requête à un chemin sans un nom de fichier). Cependant, ce n'est pas le cas. Dans le cas où le conflit a quelque chose à voir avec le fichier déjà existant, j'ai ajouté du code pour supprimer physiquement le fichier avant de le télécharger, et je reçois encore quelques 409.

quiconque A reçu ce type d'erreur, et si oui, pouvez-vous me dire comment vous avez fixé il et quelle en était la cause? Toute aide est grandement appréciée. Merci

20
demandé sur GR7 2011-07-22 06:20:55

5 réponses

comme aucune réponse n'a été affichée, j'ai trouvé le suivant ici :

le serveur Web (qui exécute le site web) pense que la demande soumise par le client (par exemple votre navigateur Web ou notre robot CheckUpDown) ne peut pas être complétée car elle entre en conflit avec une règle déjà établie. Par exemple, vous pouvez obtenir une erreur 409 si vous essayez de télécharger un fichier sur le serveur Web qui est plus ancien que celui déjà là-bas-résultant en un conflit de contrôle de version.

Quelqu'un sur un question similaire ici sur stackoverflow , a dit la réponse était:

j'ai eu ce problème quand je faisais référence à l'url du document bibliothèque et non le fichier de destination lui-même.

c'est à dire essayer de http://server name/document library name/new file name.doc

cependant je suis sûr à 100% que ce n'était pas mon cas, puisque j'ai vérifié le La propriété URI de WebRequest plusieurs fois et L'URI était complet avec le nom de fichier, et tous les dossiers dans le chemin existaient sur le site sharepoint.

de toute façon, j'espère que ça aidera quelqu'un.

20
répondu GR7 2017-05-23 11:46:11

j'ai trouvé 2 choses qui valent la peine d'être mentionnées lors du téléchargement de fichiers via webdav et http web request. Tout d'abord, pour le fournisseur que j'utilisais, j'ai dû ajouter le nom du fichier à la fin de l'url du fournisseur. Ihad pour ajouter le numéro de port dans l'url. Et j'ai également définir la méthode de la Requête pour METTRE à la place de la POSTE.

exemple:

string webdavUrl = "https://localhost:443/downloads/test.pdf";
request.Method = "PUT";
2
répondu sk1900 2014-08-22 05:42:00

Nous sommes également obtenir la même erreur alors que nous essayons d'accéder à une même ressource en millisecondes. Comme si j'essaie de POST certaines données à www.abc.com/blog et avec en millisecondes une autre requête ira aussi pour la même ressource i.e. www.abc.com/blog du même utilisateur. Ça donnera l'erreur 409 .

1
répondu Shravan Jain 2017-09-11 05:11:31

j'ai rencontré un problème similaire lors du téléchargement d'un fichier retourné 409.

outre les problèmes mentionnés ci-dessus, il peut également se produire en raison de restrictions de taille des fichiers pour le POST sur le côté du serveur. Par exemple, tomcat (java web server) a la limite de taille de poste de 2MB par défaut.

0
répondu VinPro 2018-04-19 21:52:03

j'ai eu cette erreur quand j'ai essayé de créer le dossier http://localhost:8080/repository/default/parent/newFolder quand http://localhost:8080/repository/default/parent n'existait pas.

0
répondu user3563159 2018-10-03 11:06:40