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, 0, 256);
59 while (count > 0)
60 {
61 bytes.writeByteArr(Bytes.byteSub(byteArr, 0, count));
62 count = streamRequest.Read(byteArr, 0, 256);
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 }
太晚了,睡觉。
C# 操作超时正常还是错的更多相关文章
- ENSP NE40E 报错(NE1启动操作超时,请检查与服务器链接后重试!)
前言:某网友淘宝找我咨询NE40E启动失败的问题,事后我整理的处理过程,供各位同行参考. 系统版本:windows 10 软件版本: ENSP:V100R003C00 virtual BOX:5.2. ...
- wcf 请考虑增加操作超时
发送到 net.tcp://192.168.1.18:8732/CallbackService 的请求操作在配置的超时(00:00:59.9879994)内未收到回复. 分配给此操作的时间可能已经是更 ...
- C#用WebClient下载File时操作超时的问题
原文:C#用WebClient下载File时操作超时的问题 今天很SB,被这个问题卡住了.那段代码也是网上找的.结果发现只能下载一个文件,第二次下载的时候就会出现“操作超时”的问题. 这个是原代码: ...
- 同花顺核新下单程序的"界面不操作超时时间"的设定
"界面不操作超时时间"的设定 同花顺核新下单程序的'界面不操作超时时间'的设定 系统> 系统设置> 界面设置> 界面不操作超时时间(分): 在这个输入框里填上个3 ...
- HttpWebRequest中GetResponse或者说GetRequestStream偶尔超时,或者是各种操作超时造成的假死的一些解决方案
今天用了将近一天的时间来查找这个问题的存在,不停的百度查找原因测试原因,发现解决方案很是简单,不过最好还好哦啊都解决了,在这里纪录一下,希望可以帮到你们 payload = System.Text.E ...
- chrome无法登陆账号,显示操作超时的解决方案
起因 今天重装了下windows操作系统,准备登陆chrome浏览器,以同步各种插件(你懂的),结果是...无法登陆账号,显示操作超时,真是无语了. 碰到了这个问题第一个直觉是:FQ.突然想到如果修改 ...
- C# post数据时 出现如下错误: System.Net.WebException: 操作超时
net(客户端)调用IIS(服务端)出现503后,就报操作超时错误 问题描述: 服务端环境: IIS 客户端环境: windowsxp + iis + .net 调用时出现如下错误: System.N ...
- delete操作字符串会报错吗?
其实是不会的."delete只能对对象属性进行操作"的说法是错误的,严谨来说,delete可以对任意变量类型进行操作,只不过只有对对象的属性才能操作成功,对其他变量类型操作失败罢了 ...
- windows下Eclipse操作MapReduce例子报错:Failed to set permissions of path: \tmp\hadoop-Jerome\mapred\staging\
windows下Eclipse操作MapReduce例子报错: 14/05/18 22:05:29 WARN util.NativeCodeLoader: Unable to load native- ...
随机推荐
- [COGS2479 && COGS2639]高维偏序(CDQ分治,bitset)
COGS2479:四维偏序. CDQ套CDQ CDQ:对a分治,对b排序,再对a打标记,然后执行CDQ2 CDQ2:对b分治,对c归并排序,对d树状数组. #include<cstdio> ...
- 【树链剖分(区间线段树)】BZOJ4196-[NOI2015]软件包管理
[题目大意] 如果软件包A依赖软件包B,那么安装软件包A以前,必须先安装软件包B.同时,如果想要卸载软件包B,则必须卸载软件包A.而且,由于你之前的工作,除0号软件包以外,在你的管理器当中的软件包都会 ...
- TZOJ 数据结构实验:单链表元素插入
描述 实现函数CreateHeader用于创建空链表,实现Insert函数并调用它完成带头节点链表的创建. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. void PrintLinkL ...
- RxJava 1.x 理解-3
在 RxJava 1.x 理解-1 中,我们说到了RxJava的简单用法,但是这还远远不够,因为 输入的数据 ---> 被监听者(订阅源)对这些数据进行操作,或者执行响应的处理 --> 产 ...
- Http报头Accept与Content-Type的区别(转)
1.Accept属于请求头, Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...
- GNS3 思科模块 说明
GNS3整合了如下的软件: Dynamips :一款可以让用户直接运行Cisco系统(IOS)的模拟器 Dynagen :是Dynamips的文字显示前端 Pemu : PIX防火墙设备模 ...
- ArcMap绘图时,节点显示时的小数点位数
直接来图吧,省的啰嗦了: 打开选中节点的,节点坐标列表(Edit Sketch Properties):
- OpenGL ES2.0编程三步曲 -转
原地址:http://blog.csdn.net/myarrow/article/details/7707943 1. 保存全局变量的数据结构 以下例子程序均基于Linux平台. typedef st ...
- verynginx +nginx_upstream_check_module模块,负载均衡检查模块。
yum -y install git yum -y install patch yum -y install pcre-devel yum install -y zlib-devel mkdir ...
- leetcode练习之No.7------ 翻转整数reverse_integer
原文地址:http://www.niu12.com/article/48 git地址:git@github.com:ZQCard/leetcode.git 给定一个 32 位有符号整数,将整数中的数字 ...