接收远程服务器返回错误:(403)禁止消息

oba*_*sta 5 c# asp.net iis-7.5

我收到"远程服务器返回错误:(403)禁止"错误消息在下面的代码块.特别是这一行失败了:var response =(HttpWebResponse)(request.GetResponse());

代码在我的开发机器上完美运行,但不在生产中.我在两种环境中都使用IIS 7.5.两台计算机都已完成修补(安装了所有Windows更新).使用4.0 .Net Framework.不确定为什么它在一台机器上工作而不是在其他机器上工作

码:

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();
Run Code Online (Sandbox Code Playgroud)

Vla*_*den 1

您可能需要指定凭据

request.Credentials = CredentialCache.DefaultCredentials;
Run Code Online (Sandbox Code Playgroud)

或者如果您需要通过特定凭证,请通过:

request.Credentials = new NetworkCredentials("user", "password");
Run Code Online (Sandbox Code Playgroud)

有关NetworkdCredential 类的更多信息