Доступ к службе WCF из клиентского приложения, когда пользователь находится за прокси-сервером

У меня есть служба WCF, размещенная на сервере. Клиентское приложение обращается к службе на компьютере с Windows 7. На машине с Windows 7 есть два пользователя. Приложение Windows устанавливается через Clickonce, поэтому для двух пользователей будет отдельный экземпляр.

Когда userA обращается к сервису через приложение Winforms, он работает нормально, но когда userB на том же компьютере пытается получить доступ, он выдает следующее исключение: Исключение связи: удаленный сервер вернул неожиданный ответ: (417) Ожидание не выполнено.

Server stack trace: 
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Myapp.ServiceProxy.IMyAPIService.GetData(String userName, String passWord)

В чем может быть причина работы для одного пользователя, а не для другого? Я что-нибудь упустил?

ОБНОВЛЕНИЕ : Хотя я нашел решение (см. Мой ответ ниже) этой проблемы, но все же хотел знать, что следует делать в этом сценарии. В статье MSDN говорится, что пользователь не может отправлять большие объемы данных на сервер, но при этом не упоминается о каких-либо ограничениях?

Каков предел данных, которые клиент может отправлять на сервер? Есть ли лучший подход для подключения службы WCF от клиента, который находится за прокси-сервером?

6
задан JPReddy 18 February 2011 в 08:26
поделиться