(WCF)异常详细信息: System.Net.WebException: 操作超时

jeky123 2008-10-29 07:51:59
有一个winform类型的Host,分别有3个按扭功能:1、开启服务。2、关闭服务。3、显示当前服务状态。
还有一个web类型的client,我添加了服务引用,并在Page_Load中写好了调用代码。
然后,我打开client页面,显示结果正确,调用成功。
然后我再刷新,调用成功。
再刷新,还成功。
……
但是我刷新大约8次后,页面停顿了好久,最后显示如下错误:
“异常详细信息: System.Net.WebException: 操作超时”。

我重新关闭浏览器,重新输入client调用页面网址后,发现仍是超时。
这时,我点击了Host窗口中的第3个按扭“查看服务状态”,弹出结果是:Opened。
服务正常,并没有关闭呀?

我又尝试点击“关闭服务”按扭,再点击“开启服务”按扭。这时再刷新client页面,发现又调用正常了。
但是我再刷新大约8次左右,又超时了。
这是怎么回事儿???

请高手指点。超时的详细信息如下:

-------------------------------------------------------------

异常详细信息: System.Net.WebException: 操作超时

源错误:

行 51:
行 52: public int GetMaxCustID() {
行 53: return base.Channel.GetMaxCustID();
行 54: }
行 55:


源文件: D:\Web\WCF-Example\Client\Service References\ServiceReference\Reference.cs 行: 53

堆栈跟踪:

[WebException: 操作超时]
System.Net.HttpWebRequest.GetResponse() +1532114
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +40

[TimeoutException: 对“http://localhost:8731/Design_Time_Addresses/Service/CustService/”的 HTTP 请求已超过为 00:01:00 分配的超时。为此操作分配的时间可能是较长超时的一部分。]
System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason) +501
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +208
System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) +341

[TimeoutException: 请求通道在等待 00:00:59.9990000 以后答复时超时。增加传递给请求调用的超时值,或者增加绑定上的 SendTimeout 值。分配给此操作的时间可能是更长超时的一部分。]
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +2668969
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +717
Client.ServiceReference.ICustService.GetMaxCustID() +0
Client.ServiceReference.CustServiceClient.GetMaxCustID() in D:\Web\WCF-Example\Client\Service References\ServiceReference\Reference.cs:53
Client._Default.Page_Load(Object sender, EventArgs e) in D:\Web\WCF-Example\Client\Default.aspx.cs:21
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436

...全文
3906 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mattertome 2010-05-20
  • 打赏
  • 举报
回复
同样遇到类似的问题
但是查询的方法性能应该是没问题的
liulogo 2008-11-16
  • 打赏
  • 举报
回复
为什么我的点击不到十次就报超时错误啊 我的WCF服务部署到IIS中啦 是否需要关闭client啊?
liulogo 2008-11-15
  • 打赏
  • 举报
回复
我也有个类似的问题 想问问
我是将WCF服务部署到IIS里的 这种情况是否需要客户端关闭服务调用啊
jeky123 2008-10-29
  • 打赏
  • 举报
回复
我把client.close()后,问题解决!
非常感谢天马行空朋友!!!
jeky123 2008-10-29
  • 打赏
  • 举报
回复
我的client页面中的调用代码是:
protected void Page_Load(object sender, EventArgs e)
{
ServiceReference.CustServiceClient client = new Client.ServiceReference.CustServiceClient();
int custID = client.GetMaxCustID();
bool result = client.SaveInfo(Request.QueryString["name"]);
Response.Write("<br />最大客户ID号:" + custID);
Response.Write("<br />保存结果:" + result);
}



我的服务契约代码是:
public class CustService : ICustService
{
public int GetMaxCustID()
{
return Customer.GetMaxCustID();
}

public bool SaveInfo(string name)
{
return Customer.SaveInfo(name);
}
}


我的Host代码是:
public partial class Form1 : Form
{
ServiceHost host;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
host = new ServiceHost(typeof(CustService));
host.AddServiceEndpoint(typeof(ICustService), new WSHttpBinding(), "CustService");
host.Open();
}

private void button2_Click(object sender, EventArgs e)
{
host.Close();
}

private void button3_Click(object sender, EventArgs e)
{
string status = host.State.ToString();
MessageBox.Show(status);
}
}
  • 打赏
  • 举报
回复
最好把你的服务器端代码也贴出来。
  • 打赏
  • 举报
回复
你client打开后有没有close掉?
wcf默认连接是10个,如果你每次刷新页面访问了后没有close掉链接,那么等到大约10次左右的时候,连接没有了,就会超时了,把你调用的代码贴出来看看

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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