Recevant Le serveur distant a retourné une erreur: (403) Interdit message
Je suis de réception "Le serveur distant a retourné une erreur: (403) Interdit" message d'erreur sur le bloc de code ci-dessous. Plus particulièrement, cette ligne est un échec: var response = (HttpWebResponse)(requête.GetResponse());
Le code fonctionne parfaitement sur ma machine de dev, mais pas dans la production. Je suis à l'aide de IIS 7.5 dans les deux environnements. Les deux machines sont à foulon patché (toutes les mises à jour de Windows installé). À l'aide de 4.0 .Net Framework. Je ne sais pas pourquoi cela fonctionne sur une machine et pas d'autres.
Code:
var uri = new Uri(url);
var request = (HttpWebRequest)WebRequest.Create(uri);
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Timeout = System.Threading.Timeout.Infinite;
request.Method = @"POST";
request.ContentType = @"application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
request.UserAgent = @"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
request.Accept = "*/*";
//setup the stream variables and do the send/retrieve of data
Stream writeStream = request.GetRequestStream();
var bytes = System.Text.Encoding.ASCII.GetBytes(postData);
writeStream.Write(bytes, 0, bytes.Length);
writeStream.Close();
var response = (HttpWebResponse)(request.GetResponse());
var responseStream = response.GetResponseStream();
var readStream = new StreamReader(responseStream, Encoding.UTF8);
pageResponse = readStream.ReadToEnd();
OriginalL'auteur obautista | 2013-01-06
Vous devez vous connecter pour publier un commentaire.
Vous devrez peut-être spécifier les informations d'identification
ou si vous avez besoin pour passer des informations d'identification spécifiques pass:
Plus d'informations sur NetworkdCredential Classe
OriginalL'auteur Vlad Bezden
Avez-vous essayé paramètre les informations d'Identification de l'objet de la demande avec une autorisation pour le serveur que vous tentez d'accéder? Voir Système.Net.NetworkCredential.
OriginalL'auteur OldProgrammer
Essayez de vérifier à la fois la production et de la dev iis les méthodes d'authentification de l'application (iis manager -> cliquez sur le site web->view ->authentification).
Sons comme sur le dev iis vous avez l'authentification anonyme est activée, et sur la production iis pas.
Si vous n'aurez pas anonyme auth activé sur la production, vous aurez probablement besoin de régler la demande.Les informations d'identification que vous pouvez voir ci-dessus.
Ok, avez-vous accès à un journal? Essayez de rechercher tous les indices. Une autre chose que vous pouvez vérifier, c'est l'application de la piscine, en vertu de laquelle l'application s'exécute. Regardez la .version net. Dans certains cas, lorsqu' .net 3.5 et 4.0 sont installés, vous devez exécuter aspnet_regiis -je pour vous inscrire .net framework 4.0.
OriginalL'auteur Mihai