Как избежать тайм-аутов в WCF? - PullRequest
0 голосов
/ 05 мая 2010

Я использую netNamedPipeBinding, и мои методы обслуживания ничего не возвращают (void), но время ожидания истекло:

TimeoutException: «Операция открытия не завершилась в течение выделенного времени ожидания 00:01:00. Время, отведенное для этой операции, могло быть частью более длительного времени ожидания».

Трассировка стека серверов: в System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen (время ожидания TimeSpan) в System.ServiceModel.Channels.CommunicationObject.Open (время ожидания TimeSpan) в System.ServiceModel.Channels.ServiceChannel.OnOpen (время ожидания TimeSpan) в System.ServiceModel.Channels.CommunicationObject.Open (время ожидания TimeSpan) в System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce (время ожидания, каскад CallOnceManager) в System.ServiceModel.Channels.ServiceChannel.EnsureOpened (TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.Call (действие String, логический односторонний режим, операция ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (метод IMethodCallMessageCall, операция ProxyOperationRuntime) в System.ServiceModel.Channels.ServiceChannelProxy.Invoke (сообщение IMessage)

Исключение переброшено в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32)

Чтобы избежать этого, я превратил свой сервис в OneWay операцию. Но тайм-аут все еще происходит. Я ожидал, что это решило мою проблему. Является ли netMsmqBinding единственным, кто мог бы избежать такого тайм-аута?

Я также попытался выполнить всю обработку в отдельном потоке, чтобы служба могла отключиться раньше, но безуспешно.

1 Ответ

1 голос
/ 05 мая 2010

Я чувствую, что это тайм-аут соединения. Таким образом, обязательство не должно играть роль в этом. Возможно, существует какая-то проблема для службы, чтобы принять вызов. Как вы их развернули или есть проблема на стороне сервера? Можете ли вы сделать некоторые записи или отслеживания? Вероятно, можно включить tracelistener.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...