0
我有一段代碼調用託管在服務器上的WCF服務。WCF:超時錯誤
該代碼不斷循環四處調用此方法。 (這是要求'地位',所以它根本沒有做任何工作)。
這很好,只是經過一段時間後出現錯誤:
發送到net.tcp:// serverName:9001/service1的此請求操作未在配置的超時(00:00)內收到回覆:09.9843754)
突然我無法到達服務器。我增加了超時到1分鐘,但仍然是同樣的問題。請注意,承載該服務的程序無所作爲,只是提供了「狀態」。所以這不是WCF服務應用程序忙碌的問題。
我認爲這是一個代碼調用服務的問題,因爲當我重新啓動應用程序時,它可以連接到服務就好了...直到在另一短時間後,我再次得到超時錯誤。由於這個原因,我不認爲這是一個網絡錯誤,因爲當我重新啓動應用程序可以一段時間。
這裏是我用來調用服務的代碼。我需要在每次通話後處理ChannelFactory以清理它或我在做什麼?
NetTcpBinding binding = new NetTcpBinding(SecurityMode.Message);
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
EndpointAddress endPoint = new EndpointAddress(new Uri(clientPath));
ChannelFactory<IClient> channel = new ChannelFactory<IClient>(binding, endPoint);
channel.Faulted += new EventHandler(channel_Faulted);
IClient client = channel.CreateChannel();
((IContextChannel)client).OperationTimeout = new TimeSpan(0, 0, 10);
ClientStatus clientStatus = client.GetStatus();
如果該國出現故障這不是因爲工作,neighter關閉(),也沒有關於()將會被調用後。您應該在try塊內移動client.GetState(),或者在調用Close()之前移除該編碼。 – 2013-05-26 08:17:07