#c# #winforms #web-services #webservices-client
#c# #winforms #веб-службы #веб-сервисы-клиент
Вопрос:
У нас есть приложение WinForms (.NET 4.0 / C #), которое обращается к нескольким веб-службам. Мы развернули на клиенте, у которого есть какая-то функция прокси в их брандмауэре (нет настроек прокси в параметрах Обозревателя на клиентском компьютере, но это определенно прокси).
Проблема в том, что наше приложение WinForms завершится сбоем при первом вызове веб-службы. Информация об ошибке не очень полезна, но ясно, что она не может вызвать методы веб-службы. Странная часть заключается в том, что как только мы помещаем URL-адрес веб-службы (asmx) в Internet Explorer на этом клиентском компьютере, он работает просто отлично в течение нескольких дней. Это как если бы IE заставлял маршрутизатор кэшировать часть информации о маршрутизации.
Кто-нибудь еще сталкивался с этим? Есть ли простое исправление, которое мы могли бы реализовать?
Спасибо!
Вот информация об исключении:
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Net.WebException
Stack:
Server stack trace:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at AutoUpdater.Module.WebService.AutoUpdaterWebService.AutoUpdater.ValidateInstallKey(String installKey, String computerIdentifier)
at AutoUpdater.Module.WebService.Config.ValidateInstallKey()
at AutoUpdater.Module.RemoteService.ValidateInstallKey()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]amp; outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessage)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(System.Runtime.Remoting.Proxies.MessageData ByRef, Int32)
at AutoUpdater.Foundation.Interfaces.IRemoteService.ValidateInstallKey()
at AutoUpdater.UpdateForm..ctor()
at AutoUpdater.Program.Main()
Комментарии:
1. Что за исключение WebException?
2. можете ли вы показать код вызова веб-службы?
3. Я думаю, что IE настроен на автоматическое определение прокси. Как только вы получите настройку прокси на клиенте с помощью ie, после этого все в порядке.
4. @UnhandledException код довольно простой: использование (AutoUpdaterWebService. Служба автоматического обновления = новый веб-сервис автоматического обновления. AutoUpdater()) { служба возврата. ValidateInstallKey(_installKey, «»); }
5. @user957902 кажется, что все в порядке, за исключением того, что он начнет работать для всей сети в течение примерно 30 дней, как только один человек посетит этот URL-адрес в IE. Существует ли какая-то групповая политика или что-то еще, что могло бы контролировать это?