当前位置: 代码迷 >> Web Service >> 新手有关问题:连接webservice超时错误的有关问题
  详细解决方案

新手有关问题:连接webservice超时错误的有关问题

热度:68   发布时间:2012-12-15 15:16:03.0
新手问题:连接webservice超时异常的问题
我已经知道服务器端的超时在iis中可以设置

新手问题:

请问客户端连接时候的超时代码应该如何写,在哪里设置??

还有一个问题,就是如果webservice服务器不可用(停机)或者客户端本身网络有问题连接不上的情况下,如何尽快捕获异常,停止连接尝试,现在如果网络连不上要等30秒左右才报无法连接远程服务器,有没有办法缩短至10秒这样?
------最佳解决方案--------------------
WebService超时设置 

1. 服务器端设置超时

在 web.config 的 system.web 里添加如下配置项:

< httpRuntime

executionTimeout="30"

/>

以上时间单位是秒.

记得要把 web.config 的 debug 模式关闭:

< compilation 

defaultLanguage="c#"

debug="false"

/>

2. 客户端设置超时

在 WebService 的客户端代理程序(用 wsdl.exe 生成)里设置 Request 超时时间, 单位是毫秒:

protected override WebRequest GetWebRequest(Uri uri)

{

HttpWebRequest wr = (HttpWebRequest)base.GetWebRequest( uri );

wr.Timeout = 30*1000;

return wr;

}

------其他解决方案--------------------

比如:
tvXml.WebService tv = new Data.tvXml.WebService();
public DataSet GetTvProgramList(string theDate,string theTvChannelID,ref string state)
{
   tv.Timeout = 60000;
   DataSet ds=new DataSet();
   try
   {
       //                    
   }
   catch
   { 
                
   }
   return ds;
}

------其他解决方案--------------------
在获取服务端代理的时候设置。。。
------其他解决方案--------------------
楼上的请问一下你的那个问题解决了吗,我现在也遇到你同样的一个问题,楼主看见我的回复请加一下我的QQ593248154 ,O(∩_∩)O谢谢哦,希望一起学习!
------其他解决方案--------------------
请问这段代码

protected override WebRequest GetWebRequest(Uri uri)

应该写在哪里,是不是每次调用的时候都要先执行一遍

像我所说的那种情况,比如说服务器停机,有没有客户端预先判断的办法避免连接?
------其他解决方案--------------------
引用:
请问这段代码

protected override WebRequest GetWebRequest(Uri uri)

应该写在哪里,是不是每次调用的时候都要先执行一遍

像我所说的那种情况,比如说服务器停机,有没有客户端预先判断的办法避免连接?

首先将引用该WebServices的程序在IDE中打开;
然后在“解决方案资源管理器”中展开“web reference”――“webservices 名”――“Reference.map”――“Reference.cscs文件中添加
------其他解决方案--------------------
引用:
引用:
请问这段代码

protected override WebRequest GetWebRequest(Uri uri)

应该写在哪里,是不是每次调用的时候都要先执行一遍

像我所说的那种情况,比如说服务器停机,有没有客户端预先判断的办法避免连接?

首先将引用该WebServices的程序在IDE中打开;
然后在“解决方案资源管理器”中展开“web ……


不好意思,Reference.map 这个文件我就没有找到,请具体说一下
------其他解决方案--------------------
引用:
引用:
引用:
请问这段代码

protected override WebRequest GetWebRequest(Uri uri)

应该写在哪里,是不是每次调用的时候都要先执行一遍

像我所说的那种情况,比如说服务器停机,有没有客户端预先判断的办法避免连接?
  相关解决方案