2010-06-28 3 views
1

«Не снова». Я слышу, как вы говорите. Да, знаю. Но это другое ... Я думаю.WCF Client + Windows Service + ISA = (407) Требуется аутентификация прокси

Сценарий: У меня есть служба Windows (работает как SYSTEM), которая использует удаленную службу WCF. Машина сидит за прокси-сервером ISA (без домена и без прокси-имени пользователя/pwd), и я добавил прокси-сервер к моему app.config. Вот оно:

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
    <proxy 
     bypassonlocal="False" 
     proxyaddress="http://myproxyserver:8080" 
     usesystemdefault="False" /> 
    </defaultProxy> 
</system.net> 

Исключение:

System.Net.WebException: 
    The remote server returned an error: (407) Proxy Authentication Required. 
    at System.Net.HttpWebRequest.GetResponse() 
    at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel. ... 
    HttpChannelRequest.WaitForReply(TimeSpan timeout) 

Почему это отличается? Я изменил службу для запуска в качестве администратора, и служба Windows смогла получить доступ к службе WCF отлично. К сожалению, мне нужно использовать учетную запись SYSTEM, поскольку служба запускает некоторые устаревшие объекты COM +, для которых требуется установить параметр «Разрешить службу для взаимодействия с рабочим столом». (Эта опция доступна только для учетной записи SYSTEM)

Еще одна причина, почему это странно, что система должна быть большой папа всемогущий счет (morehere)

Что я пробовал: Я пробовал this, this и this ... и thensome.

Это немного загадка. Почему мой app.config работает для администратора, но не для SYSTEM?

Спасибо за помощь!

+0

Обновление: Когда флажок «Разрешить обслуживание для взаимодействия с рабочим столом» не установлен, клиент wcf работает снова. Хм ... Я больше посмотрю на это. –

ответ

0

Обнаружили проблему. Оказывается, это не имеет ничего общего с учетной записью. Поскольку период ожидания был довольно длинным, я не всегда видел это исключение сразу, что заставило меня думать, что оно имеет какое-то отношение к используемой учетной записи.

Проблема была в том, что useDefaultCredentials был установлен на false на производственной площадке. Потерпеть неудачу.

+0

Так что был ваш последний параметр в web.config по сравнению с < прокси bypassonlocal = "False" ProxyAddress = "HTTP: // myproxyserver: 8080" usesystemdefault =» False "/>

+0

У меня больше нет доступа к файлу, но это выглядит правильно. –

Смежные вопросы