如题:System.Net.WebException: 基础连接已经关闭: 连接被意外关闭。代码如下: 
 private string CreatePostHttpResponse(string url, string strParam)
    {        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        //string s = "要提交的数据";
        byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(strParam );
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded;charset=gb2312";   
        request.ContentLength = requestBytes.Length;
        Stream requestStream = request.GetRequestStream();
        requestStream.Write(requestBytes, 0, requestBytes.Length);
        requestStream.Close();        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        var myResponseStream = response.GetResponseStream();
        StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.GetEncoding ("gb2312"));
        string retString = myStreamReader.ReadToEnd();
        myResponseStream.Close();
        myStreamReader.Close();
        response.Close();
        
        
        return retString;
    }
如何解决???

解决方案 »

  1.   

     requestStream.Close();
    myResponseStream.Close();
      myStreamReader.Close();
      response.Close();
        
    你 关 毛 呀 
    全 放到 最后 关 搞 不 懂关系 不要 
    显得 自己 好 有 水平 
      

  2.   

    貌似楼上说得对,
    requestStream关早了
      

  3.   

    看看URL地址是否正确,requestStream放到后面关闭试试!
      

  4.   

    查看URL地址是否正确,requestStream放到后面关闭试试!
      

  5.   

    requestStream不用放到最后关闭,楼主这样写关闭requestStream是没有问题的。myResponseStream.Close();
    myStreamReader.Close();
    这两个最好换下顺序。检查url是否是可访问的,自己设置断点再跟踪一下究竟是哪里抛出的异常。
      

  6.   


    requestStream.Close();
    我也举得这句有问题,应该不要的。或者你放到后面去
      

  7.   

    private void DealRequest()
            {
                LogWrite logWrite = null;
                try
                {                string sClientIp = ((IPEndPoint)this.m_socket.RemoteEndPoint).Address.ToString();
                    string sConnectTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");                string sMessage = ReceiveMessage();
                    logWrite = new LogWrite("Update", "Info", "接收到客户端:" + sClientIp + "发来的报文:[" + sMessage + "]", "");                string sRequestType = sMessage.Substring(0, 2);                switch (sRequestType)
                    {
                        case "00":
                            string sUpdateFilesList = "";
                            try
                            {
                                // sUpdateFilesList += GetUpdateFilesList( Application.StartupPath );
                                sUpdateFilesList += GetUpdateFilesList();
                                if (sUpdateFilesList != "")
                                {
                                    sUpdateFilesList = sUpdateFilesList.Substring(0, sUpdateFilesList.Length - 1);
                                }
                            }
                            catch (GetUpdateFilesListException getEx)
                            {
                                logWrite = new LogWrite("Update", getEx, "在获得更新文件列表时出错。");
                                sUpdateFilesList += "Error";
                            }
                            logWrite = new LogWrite("Update", "Info", "要发送给客户端:" + sClientIp + "的报文为:[" + sUpdateFilesList + "]");
                            SendMessage("00" + sUpdateFilesList);
                            break;
                        case "01":
                            string sFileName = sMessage.Substring(2);
                            FileStreamWrap fileStreamWrap = null;
                            BinaryReader bReader = null;
                            NetworkStreamWrap networkStreamWrap = null;
                            try
                            {
                                fileStreamWrap = new FileStreamWrap(Application.StartupPath + "\\" + sFileName, FileMode.Open, FileAccess.Read, FileShare.Read, LOGDIR);                            bReader = new BinaryReader(fileStreamWrap.fileStream);                            System.Int64 iFileLen = bReader.BaseStream.Length;
                                String sMsgLen = ((Int64)(iFileLen + 19 + 2 + 1)).ToString();                            DateTime timeFile = FileWrap.GetLastWriteTime(Application.StartupPath + "\\" + sFileName, LOGDIR);
                                String sSend = sMsgLen.PadLeft(10, '0') + "01" + timeFile.ToString("yyyy-MM-dd HH:mm:ss") + "|";
                                logWrite = new LogWrite("Update", "Info", "发送给客户端:" + sClientIp + "的文件内容报文中,前段的报文内容:[" + sSend + "]");
                                byte[] arrbyteSend = Encoding.Default.GetBytes(sSend);
                                networkStreamWrap = new NetworkStreamWrap(this.m_socket, LOGDIR);
                                networkStreamWrap.Write(arrbyteSend, 0, arrbyteSend.Length, LOGDIR);
                                logWrite = new LogWrite("Update", "Info", "成功将文件内容报文中前段的报文内容发送给客户端:" + sClientIp);
                                logWrite = new LogWrite("Update", "Info", "开始将文件:" + sFileName + "的内容发送给客户端:" + sClientIp);
                                arrbyteSend = new Byte[iFileLen];
                                bReader.Read(arrbyteSend, 0, arrbyteSend.Length);
                                networkStreamWrap.Write(arrbyteSend, 0, arrbyteSend.Length, LOGDIR);
                                logWrite = new LogWrite("Update", "Info", "成功将文件:" + sFileName + "的内容发送给客户端:" + sClientIp);                        }
                            catch (FileAccessException fileAccessEx)
                            {
                                logWrite = new LogWrite("Update", fileAccessEx, "文件访问错误,因此将空报文返回给客户端。");
                                SendMessage("01");
                            }
                            catch (StreamAccessException streamAccessEx)
                            {
                                logWrite = new LogWrite("Update", streamAccessEx, "文件访问错误,因此将空报文返回给客户端。");
                                SendMessage("01");
                            }
                            finally
                            {
                                if (bReader != null)
                                {
                                    bReader.Close();
                                }
                                if (fileStreamWrap != null)
                                {
                                    fileStreamWrap.Close();
                                }
                                if (networkStreamWrap != null)
                                {
                                    networkStreamWrap.Close();
                                }
                            }
                            break;看 不 看得 懂 看 你 自己 了 上帝 保佑你