新手有关问题:连接webservice超时错误的有关问题
新手问题:连接webservice超时异常的问题我已经知道服务器端的超时在iis中可以设置新手问题:请问客户端连接
新手问题:连接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)
应该写在哪里,是不是每次调用的时候都要先执行一遍
像我所说的那种情况,比如说服务器停机,有没有客户端预先判断的办法避免连接?
[其他解释]首先将引用该WebServices的程序在IDE中打开;
然后在“解决方案资源管理器”中展开“web reference”——“webservices 名”——“Reference.map”——“Reference.cscs文件中添加
[其他解释]不好意思,Reference.map 这个文件我就没有找到,请具体说一下
[其他解释]点击"Solution Explorer"上的"显示所有文件",然后再按我说的路径找
[其他解释]感谢,找到了,代码加在哪一段,,,我加了几个地方,总是报错, 找不到 GetWebRequest方法重写
[其他解释]OK,认真看了下,找到了,我试试