zoukankan      html  css  js  c++  java
  • C# 操作超时正常还是错

    net(客户端)调用IIS(服务端)出现503后,就报操作超时错误

    问题描述:
    服务端环境:
    IIS

    客户端环境:
    windowsxp + iis + .net

    调用时出现如下错误:
    System.Net.WebException: 远程服务器返回错误: (503) 服务器不可用。
       在 System.Net.HttpWebRequest.GetResponse()
       在 TestWebRequest.WebMessage.SendRequest(Byte[] data, String urlStr)

    接着就出现如下错误:

    System.Net.WebException: 操作超时
       在 System.Net.HttpWebRequest.GetRequestStream()

    最后一直是这个错误

    System.Net.WebException: 操作超时
       在 System.Net.HttpWebRequest.GetRequestStream()

     当服务器恢复正常时,访问已经是200时,这个线程还是返回操作超时,经过N多测试,最后如下一行完美解决:

    myRequest.ServicePoint.Expect100Continue = false;

     修改后的方法为:


     1 public byte[] SendRequest(byte[] data, string urlStr)
     2        {
     3            try
     4            {
     5                Stream streamSend = null;
     6                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(urlStr);
     7                myRequest.Method = "POST";
     8                myRequest.ContentType = "text/xml";
     9                myRequest.Accept = "*/*";
    10                myRequest.Timeout = 2000;
    11                myRequest.UserAgent = "Mozilla-Firefox-Spider(Wenanry)";
    12                myRequest.ContentLength = data.Length;
    13                //这个在Post的时候,一定要加上,如果服务器返回错误,他还会继续再去请求,不会使用之前的错误数据,做返回数据
    14                myRequest.ServicePoint.Expect100Continue = false;
    15
    16                HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
    17                myRequest.CachePolicy = noCachePolicy;
    18
    19                try
    20                {
    21                    streamSend = myRequest.GetRequestStream();
    22                    streamSend.Write(data, 0, data.Length);
    23                    streamSend.Close();
    24                }

    25                catch (WebException wex)
    26                {
    27                    log.Debug("WebException=" + wex.ToString() + ",wex.Status=" + wex.Status);
    28                    if (streamSend != null)
    29                        streamSend.Close();
    30                    streamSend = null;
    31                    myRequest = null;
    32                    return null;
    33                }

    34                catch (Exception ex)
    35                {
    36                    log.Debug("GetRequestStream=" + ex.ToString());
    37                    if (streamSend != null)
    38                        streamSend.Close();
    39                    myRequest = null;
    40                    return null;
    41                }

    42
    43                byte[] byteArr = new byte[256];
    44                Stream streamRequest = null;
    45                try
    46                {
    47                    streamRequest = myRequest.GetResponse().GetResponseStream();
    48                }

    49                catch (Exception httpex)
    50                {
    51                    log.Debug("SendRequest=" + httpex.ToString());
    52                    if (streamRequest != null)
    53                        streamRequest.Close();
    54                    myRequest = null;
    55                    return null;
    56                }

    57                Bytes bytes = new Bytes();
    58                int count = streamRequest.Read(byteArr, 0256);
    59                while (count > 0)
    60                {
    61                    bytes.writeByteArr(Bytes.byteSub(byteArr, 0, count));
    62                    count = streamRequest.Read(byteArr, 0256);
    63                }

    64                streamRequest.Close();
    65                return bytes.getByte;
    66            }

    67            catch (Exception eee)
    68            {
    69                log.Debug("eee=" + eee.ToString() + eee.Source + eee.StackTrace);
    70            }

    71            return null;
    72        }

    太晚了,睡觉。 

  • 相关阅读:
    AC自动机---病毒侵袭
    线段树或树状数组---Flowers
    AC自动机---Keywords Search
    AC自动机基础知识讲解
    线段树---Atlantis
    状态压缩DP---Hie with the Pie
    状态压缩DP--Mondriaan's Dream
    【PAT-并查集-水题】L2-007-家庭房产
    【PAT-一道看着很难的水题】L2-023. 图着色问题
    【二叉搜索树】PAT-天梯赛- L2-004. 这是二叉搜索树吗?
  • 原文地址:https://www.cnblogs.com/wangchuang/p/3664131.html
Copyright © 2011-2022 走看看