我目前正在调试一个用户无法与我们的身份验证服务器通信的问题。这个问题对我们很重要,因为这是一个用户的问题,随着我们的发展,这个问题可能会演变为更多用户的问题。
这是我用来调试他的问题的方法。
List<string> headers = new List<string>();
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.CookieContainer = new CookieContainer();
webRequest.AllowAutoRedirect = false;
using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
{
headers.Add("Status Code: " + (int)webResponse.StatusCode);
headers.Add("Status Desc: " + webResponse.StatusDescription);
foreach (string key in webResponse.Headers.Keys)
{
if (!key.ToString().Equals("Location"))
{
var value = webResponse.Headers[key];
headers.Add(key + ": " + value);
}
}
}
// Try-catch statements here, which print out "Error Message: " + ex.Message
当他请求我们的服务器时我收到的错误是:
此外,我使用了不同的HTTP(S)
协议和webRequest.XXXXX
设置,但无济于事——错误都在40X
范围内。
我知道这类4XX
状态代码是用于客户端似乎出现错误的情况。
403 Forbidden
表示该请求是有效请求,但服务器拒绝响应。
407 Proxy Authentication Required
表示客户端必须首先向代理进行身份验证。
有一件事我不太确定,那就是这个问题的罪魁祸首是谁?是:
- 用户的防火墙设置?
- 我们的身份验证服务器的设置拒绝了该用户?
- 请求设置?
之前有人在帖子中建议我让用户安装 Fiddler 来嗅探请求和响应,但我觉得让他配置 Fiddler 要求您接受的内容以使用其某些功能(例如 HTTPS)有点不方便。还有其他方法可以调试吗?