我在本地的winform中调用部署在另一台机器上的一个webservice,第一次调用时正常,但从第二次开始就产出异常,如下:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
Stack Trace:
[HttpException (0x80004005): Request timed out.] |
我在网上查了下,发现很多的说法,如
在web.config中加入
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
或
1.iis->[网站]->属性-》连接超时。默认为120秒
2.web.config 手工添加httpruntime,如
<system.web>
<httpruntime executiontimeout="2000" />
</system.web>
3.同步执行webservice时,设置timeout属性
或
windows应用程序所参照的webservice的Reference.cs文件中,添加下列代码
using System.Net;
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest webRequest = (HttpWebRequest)base.GetWebRequest(uri);
webRequest.KeepAlive = false;
webRequest.ProtocolVersion = HttpVersion.Version10;
return webRequest;
}
以上方法都试过了,但还是产生上述异常。
请高手指教。
用时超过一分钟?那不timeout才怪
1.检查你的服务器端是否出现什么异常
2.如果用了数据库,检查下数据库是否异常
能把你的WebService地址贴出来嘛?
你的web service完成什么功能?
连接超时了
直接在浏览器访问ws试试
应该是连接数据库的问题。
部署到远程服务器上试试!
WF调用,改app.config 下的
receiveTimeout="02:01:00" sendTimeout="02:01:00"
<bindings>
<basicHttpBinding>
<binding name="ServiceSoap" closeTimeout="02:01:00" openTimeout="02:01:00"
receiveTimeout="02:01:00" sendTimeout="02:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
连接的释放问题?