无线网络下 .net cf访问webservice时网络异常

unsigned 2012-09-24 04:55:20
WinCE 5.0的应用,采用C# .NET CF开发。
需要访问webservice,在vs2005种添加一个web引用。开发时,通过usb连接电脑与webservice访问,一切正常,但是在实际使用时通过无线网络与server连接(weblogic),使用时,在调用webservice的时候会有10%的概率上报如下异常:
System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 试图对无法访问的主机执行套接字操作
位于 System.Net.Sockets.Socket.ConnectNoCheck()
位于 System.Net.Sockets.Socket.Connect()
位于 System.Net.Connection.doConnect()
位于 System.Net.Connection.connect()
at WorkItem.doWork()
位于 System.Threading.Timer.ring()

位于 System.Net.HttpWebRequest.finishGetResponse()
位于 System.Net.HttpWebRequest.GetResponse()
位于 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse()
位于 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse()
位于 System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke()

注:
使用usb连接电脑跟webservice通信时一切正常,无线网络情况下,ping服务器的80端口也是正常的。
使用如下代码测试网络连接,catch到异常的概率跟上面差不多。

public string CheckNet()
{
HttpWebRequest hwrRequest;
HttpWebResponse hwrResponse;

string strUrl = webServiceUrl + "?wsdl";
string rst = "failed";
try
{
hwrRequest = (HttpWebRequest)WebRequest.Create(strUrl);
hwrRequest.Timeout = 100;
hwrResponse = (HttpWebResponse)hwrRequest.GetResponse();

if (hwrResponse.StatusCode == HttpStatusCode.OK)
{
return "conect webservice ok!";
}
}
catch (WebException we)
{
rst = we.ToString();
}
catch (Exception ex)
{
rst = ex.ToString();
}
finally
{
hwrRequest = null;
hwrResponse = null;
}
return rst;
}


这个问题我已经折腾了一个星期了,还是没有任何头绪,希望能得到高手指点。
...全文
440 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdwangmin 2013-04-07
  • 打赏
  • 举报
回复
我也遇到了这个问题,请问谁知道的。
91program 2012-09-24
  • 打赏
  • 举报
回复
没有用过C#的路过

偶用MFC,无线网络没有发现 LZ 所说的问题

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧