C# 操作超时解决办法
来源:互联网 发布:数据库原理 编辑:程序博客网 时间:2024/05/24 15:41
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()
问题描述:
服务端环境:
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) { try { Stream streamSend = null; HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(urlStr); myRequest.Method = "POST"; myRequest.ContentType = "text/xml"; myRequest.Accept = "*/*"; myRequest.Timeout = 2000; myRequest.UserAgent = "Mozilla-Firefox-Spider(Wenanry)"; myRequest.ContentLength = data.Length; //这个在Post的时候,一定要加上,如果服务器返回错误,他还会继续再去请求,不会使用之前的错误数据,做返回数据 myRequest.ServicePoint.Expect100Continue = false; HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); myRequest.CachePolicy = noCachePolicy; try { streamSend = myRequest.GetRequestStream(); streamSend.Write(data, 0, data.Length); streamSend.Close(); } catch (WebException wex) { log.Debug("WebException=" + wex.ToString() + ",wex.Status=" + wex.Status); if (streamSend != null) streamSend.Close(); streamSend = null; myRequest = null; return null; } catch (Exception ex) { log.Debug("GetRequestStream=" + ex.ToString()); if (streamSend != null) streamSend.Close(); myRequest = null; return null; } byte[] byteArr = new byte[256]; Stream streamRequest = null; try { streamRequest = myRequest.GetResponse().GetResponseStream(); } catch (Exception httpex) { log.Debug("SendRequest=" + httpex.ToString()); if (streamRequest != null) streamRequest.Close(); myRequest = null; return null; } Bytes bytes = new Bytes(); int count = streamRequest.Read(byteArr, 0, 256); while (count > 0) { bytes.writeByteArr(Bytes.byteSub(byteArr, 0, count)); count = streamRequest.Read(byteArr, 0, 256); } streamRequest.Close(); return bytes.getByte; } catch (Exception eee) { log.Debug("eee=" + eee.ToString() + eee.Source + eee.StackTrace); } return null; }
阅读全文
0 0
- C# 操作超时解决办法
- WebService 操作超时的问题及其解决办法
- WebService 操作超时的问题及其解决办法
- WebService 操作超时的问题及其解决办法
- c# http请求执行超时,解决办法(给某个方法设定超时时间)
- C#操作Oracle数据库连接超时的错误处理
- C#用WebClient下载File时操作超时的问题
- C#用WebClient下载File时操作超时的问题
- SSH 连接超时解决办法
- hadoop超时解决办法
- 连接池超时解决办法
- WebService超时的解决办法
- android sdk 超时 解决办法
- MongoDB 游标超时解决办法
- ssh连接超时解决办法
- 爬虫超时解决办法
- tomcat启动超时解决办法
- tomcat 启动超时解决办法
- JAVA | 2
- windows安装mysql5.7
- 十八街区
- C# 解析JSON字符串
- UVa 201 (implement)
- C# 操作超时解决办法
- python中的多继承和多态
- hdu 2200
- 约会网站预测函数
- javascript实现HashTable
- jvm学习记录--05 垃圾收集器分类
- Libre oj #103
- 以知乎、得到APP为例!浅谈知识付费需不需要社交?
- WordPress 自定义文章类型(Post Type)