我已经知道服务器端的超时在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)
应该写在哪里,是不是每次调用的时候都要先执行一遍
像我所说的那种情况,比如说服务器停机,有没有客户端预先判断的办法避免连接?
------其他解决方案--------------------
首先将引用该WebServices的程序在IDE中打开;
然后在“解决方案资源管理器”中展开“web reference”――“webservices 名”――“Reference.map”――“Reference.cscs文件中添加
------其他解决方案--------------------
不好意思,Reference.map 这个文件我就没有找到,请具体说一下
------其他解决方案--------------------