2011-04-04 5 views
0
string configFilePath = System.Configuration.ConfigurationManager.AppSettings["PATH"].ToString(); 
XmlDocument doc = new XmlDocument(); 
XmlTextReader reader = null; 
reader = new XmlTextReader(configFilePath); 
doc.Load(reader); 
reader.Close(); 

doc.Load (lecteur) donne l'erreur suivante:XmlDocument d'erreur de charge 401 non autorisée

The remote server returned an error: (401) Unauthorized. 

Edit: Le chemin est http://localhost/something/mydoc.xml et dans le système de fichiers de l'utilisateur IIS a accès, aussi j'ai essayé avec un "tout le monde contrôle total" mais rien n'a changé. J'ai essayé de mettre le chemin dans la boîte d'url de IExplorer et il montre le xml correctement.

+1

Quelle est la valeur de « PATH » dans votre fichier de configuration? Cela ressemble à un URI HTTP ou HTTPS distant auquel vous n'avez pas accès. –

Répondre

0

Si la valeur de "PATH" essaye de se connecter à un type de machine distante, il semble qu'elle n'y ait pas accès. Donc, si votre valeur "PATH" est quelque chose comme "\ NomOrdinateur \ SharedDirectory \ fichier.xml" assurez-vous que l'utilisateur a l'autorisation de la machine "ComputerName".

1

je suis tombé sur la même question, et après quelques recherches, est venu avec une solution (voir here et here).

Dans ce cas, le réglage de la XmlUrlResolver résolu mon problème

XmlUrlResolver resolver = new XmlUrlResolver(); 
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;      

XmlReader reader = XmlReader.Create(url); 
reader.XmlResolver = resolver; 
Questions connexes