C# Vista家长控制导致套接字异常?

C# Vista家长控制导致套接字异常?,c#,.net,sockets,windows-vista,parental-control,C#,.net,Sockets,Windows Vista,Parental Control,前几天我收到一份奇怪的虫子报告,希望有人能帮我找出罪魁祸首。我有一个插件,它使用Facebook API从桌面客户端程序进行调用。用户报告说,当他打开Vista的家长控制时,他会收到一个运行时异常 ,我已经证实Vista的家长控制确实是个问题。即使没有站点被阻止,即使http://api.facebook.com是特别允许的,我仍然得到例外 冒犯的方法如下。具体来说,行string result=reader.ReadToEnd(); 是引发异常的地方 private static Xm

前几天我收到一份奇怪的虫子报告,希望有人能帮我找出罪魁祸首。我有一个插件,它使用Facebook API从桌面客户端程序进行调用。用户报告说,当他打开Vista的家长控制时,他会收到一个运行时异常

,我已经证实Vista的家长控制确实是个问题。即使没有站点被阻止,即使
http://api.facebook.com
是特别允许的,我仍然得到例外

冒犯的方法如下。具体来说,行
string result=reader.ReadToEnd();
是引发异常的地方

    private static XmlDocument ExecuteQuery(SortedDictionary<string, string> parameters,
        string secretKey)
    {
        string query = GetQueryFromParameters(parameters, secretKey);
        HttpWebResponse response = null;

        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(FACEBOOK_REST_URL);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";

            // Write the POST parameters to Facebook.
            StreamWriter writer = new StreamWriter(request.GetRequestStream());
            writer.Write(query);
            writer.Close();

            // Get a response.
            response = request.GetResponse() as HttpWebResponse;
        }
        catch (WebException we)
        {
            // Getting the response must have thrown an HTTP error. We can still try to get the 
            // response from the caught exception though.
            response = we.Response as HttpWebResponse;
        }

        if (response != null)
        {
            // Read the response.
            StreamReader reader = new StreamReader(response.GetResponseStream());
            string result = reader.ReadToEnd();
            reader.Close();
            response.Close();

            XmlDocument responseXml = new XmlDocument();
            responseXml.LoadXml(result);
            return responseXml;
        }
        else
        {
            throw new FacebookException(Resources.FacebookResponseError);
        }
    }
私有静态XmlDocument ExecuteQuery(SortedDictionary参数,
字符串加密键)
{
字符串查询=GetQueryFromParameters(参数,secretKey);
HttpWebResponse响应=null;
尝试
{
HttpWebRequest request=(HttpWebRequest)WebRequest.Create(FACEBOOK\u REST\u URL);
request.Method=“POST”;
request.ContentType=“application/x-www-form-urlencoded”;
//将POST参数写入Facebook。
StreamWriter writer=新的StreamWriter(request.GetRequestStream());
writer.Write(查询);
writer.Close();
//得到回应。
response=request.GetResponse()作为HttpWebResponse;
}
catch(WebException-we)
{
//获取响应时一定抛出了HTTP错误。我们仍然可以尝试获取响应
//但是,来自捕获的异常的响应。
response=we.response作为HttpWebResponse;
}
if(响应!=null)
{
//阅读回答。
StreamReader=新的StreamReader(response.GetResponseStream());
字符串结果=reader.ReadToEnd();
reader.Close();
response.Close();
XmlDocument responseXml=新的XmlDocument();
responseXml.LoadXml(结果);
返回响应xml;
}
其他的
{
抛出新的FacebookException(Resources.FacebookResponseError);
}
}
显然,我应该捕获IOException,而不是让它成为运行时异常。但即便如此,问题依然存在。我花了一些时间在谷歌上搜索这个问题,但没有找到任何关于家长控制的信息

有什么建议吗?谢谢

好吧,我不知道为什么会抛出异常,但至少如果我只是捕获它,什么都不做,那么读者仍然会读到最后,所有结果都会保存。

好吧,我不知道为什么会抛出异常,但至少如果我只是抓住它,什么也不做,那么读者仍然会读到最后,所有的结果都会被保存