服务端环境:
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;
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# post数据时 出现如下错误: System.Net.WebException: 远程服务器返回错误: (417) Expectation Failed 的解决办法
.net(客户端)调用php(服务端)出现417错误 问题描述: 服务端环境: linux + apache(lighttpd) + php5 客户端环境: windowsxp + ...
- liehuo123
- 2011年08月10日 11:11
- 2982
-
C# post数据时 出现如下错误: System.Net.WebException: 操作超时
net(客户端)调用IIS(服务端)出现503后,就报操作超时错误 问题描述: 服务端环境: IIS 客户端环境: windowsxp + iis + .net 调用时出现...
- sweeee
- 2015年07月01日 11:38
- 3544
-
System.Web.HttpException: 请求已超时 的解决办法。
原文:http://www.cnblogs.com/zxjyuan/archive/2011/03/14/1983363.html 今天做了个文件上传,可上传文件一大,就会出现请求已超时的错误,...
- u013908405
- 2016年09月03日 15:50
- 1427
-
C# 模拟post遇到System.Net.WebException: 请求被中止: 请求已被取消
我用下面这段话:如下代码,模拟post请求,我的操作过程是先调用一次SendDataByPost获取需要的信息之后,再调用一次SendDataByPost继续下一步操作,结果提示如下异常:请教高手这是...
- youaregoo
- 2013年07月16日 21:08
- 7202
-
异常:"System.Net.WebException: 请求因 HTTP 状态 401 失败:Unauthorized。"
今天调试程序,突然WebService就不能用了,提示:“System.Net.WebException: 请求因 HTTP 状态 401 失败:Unauthorized。”,找了半天没找到原因。最后...
- zjlovety
- 2011年08月19日 10:01
- 3930
-
远程服务器返回错误: (500) 内部服务器错误解决办法
在.net中发送 xml post请求和接受xml 的post请求时,经常会遇到“远程服务器返回错误: (500) 内部服务器错误”。 这里有2种解决办法: 第一种方法:修...
- xb12369
- 2012年12月12日 16:33
- 53872
-
expdp导出两表关联后的数据
有两张表t1、t2 t1表结构为 id、name、age
- yangchen8497
- 2014年04月24日 13:07
- 437
-
-
关于System.Net.WebException The operation has timed out,即网络操作超时的异常
- 2015年05月11日 11:37
- 2KB
- 下载
-
ADO.NET数据操作常见错误总结
1-数据库服务器无法连接问题凡是出现以上问题时,使用如下方法。1检查SQLServer服务是否打开:2检查连接字符串中的Server对应的服务器名称是否正确(注意默认实例,命名实例的名称)3如果示连接...
- qq_36482772
- 2017年05月02日 05:57
- 438
-
C#操作串口,带异常处理,解决端口占用时打开串口出现异常错误,串口关闭时发送数据报错
using System; namespace chuankou { /// /// Class1 的摘要说明。 /// class send { /// /// 应用程序的主...
- xinyuan178
- 2011年08月27日 14:37
- 6384
