我在运行IIS 5.1的本地系统上设置了两个网站(在localhost上)。我打电话给另一个网站。我正在使用ASP.NET,C#2.0。
public static String executeWebRequest(string url, Boolean esmRequest)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
UTF8Encoding encoding = new UTF8Encoding();
Stream requestStream = null;
HttpWebResponse response = null;
StreamReader responseStream = null;
string responseString;
try
{
//post request
request.Method = "POST";
if (esmRequest)
{
//request.UseDefaultCredentials = true;
request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["ESMServerUserName"], ConfigurationManager.AppSettings["ESMServerPassword"]);
}
else
{
//request.UseDefaultCredentials = true;
request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["ESMServerUserName"], ConfigurationManager.AppSettings["ESMServerPassword"]);
}
requestStream = request.GetRequestStream();
requestStream.Write(new byte[0], 0, 0);
requestStream.Close();
//get response
response = (HttpWebResponse)request.GetResponse();
responseStream = new StreamReader(response.GetResponseStream(), encoding);
responseString = responseStream.ReadToEnd();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (requestStream != null)
{
requestStream.Close();
}
if (response != null)
{
response.Close();
}
if (responseStream != null)
{
responseStream.Close();
}
}
return responseString;
}
}
我运行此代码并获得401 HTTP状态代码。 1错误,而当我在浏览器中粘贴相同的URL时,它会完美地执行。
我已经使用http://support.microsoft.com/kb/89686/en-us
启用了DisableLoopbackCheck我该如何解决这个问题?
答案 0 :(得分:0)
我能够通过此更改修复它
var cache = new CredentialCache();
NetworkCredential credential = new NetworkCredential(ConfigurationManager.AppSettings["ESMServerUserName"], ConfigurationManager.AppSettings["ESMServerPassword"]);
cache.Add(new Uri(url), "Basic", credential);
request.Credentials = cache;