Я перепробовал все, но не могу решить эту проблему, которая возникает только для одного клиента за корпоративным прокси / брандмауэром.Наше приложение Silverlight подключается к Amazon S3 для загрузки / выгрузки некоторых документов.Только на одном клиенте и на одном клиенте возвращается ошибка 407. После этого приложение не может что-либо сохранить.
Inner Exception:
System.ServiceModel.ProtocolException: [UnexpectedHttpResponseCode]
Arguments: 407,Proxy Authentication Required
У нас было что-то похожее на другом клиенте, но была проблема CORS.Чтобы решить эту проблему, я использовал облачный фронт для фальсификации субдомена, который затем обращается к корзине S3, и это решило проблему.Я надеялся, что это исправит это и с этим клиентом, но это не так.
Я пытался добавить этот код в web.config, как было предложено многими ответами
<system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>
У меня естьПрочитайте статьи о передаче заголовков прокси с базовой аутентификацией, используя имя пользователя и пароль, но я не уверен, как это нам поможет.Прокси-сервер используется клиентом, и любая необходимая аутентификация находится за пределами нашего домена.
**Additional Information**
Код Silverlight ссылается на 2 службы.Одним из них является наш сервис wcf, который извлекает все данные для приложения.Одним из них является сервис Amazon S3, использующий API Amazon Soap, конечной точкой которого является http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.wsdl?
Если я захожу в наше приложение и использую только часть системы, которая не выполняет никаких вызовов к Amazon S3API приложение отлично работает.Как только я перехожу к части системы, которая выполняет вызов на S3, проблема начинается.как ни странно, звонок на S3 проходит нормально, и я могу получить документацию в порядке, но затем любые вызовы нашей службы wcf возвращают 407.
Есть идеи?
**Update 2**
Основываясь на комментариях Эллиота Нельсона, я проверяю стек, который мы использовали для выполнения http-запросов в нашем приложении.Оказывается, мы используем клиентский http для запросов http и https по умолчанию.Вот код, который мы имеем в конструкторе App.xaml
public App()
{
Startup += Application_Startup;
UnhandledException += Application_UnhandledException;
InitializeComponent();
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
}
Теперь, чтобы понять различия между clienthttp и browserhttp и когда их использовать.Кроме того, потенциальные последствия / проблемы перехода на browserhttp.
**Update 3**
Есть ли способ запросить браузеры запустить приложение Silverlight в браузере в доверенном режиме и поможет ли это обойти эту проблему?