Я получил ошибку, которая выглядела почти идентично описанной ошибке. Однако моя ошибка была 503, и я вызывал веб-сервис на внешнем сервере.
Когда я вызывал службу из отдельного приложения, у меня не было проблем, но когда я вызывал службу из веб-части в SharePoint, это не удавалось.
Решения, которые помогли мне, без каких-либо дополнительных объяснений, потому что я не совсем понял, почему это работает (Если вы знаете, пожалуйста, просветите меня :))
Первое решение, которое работало для меня, состояло в том, чтобы использовать мою собственную учетную запись домена вместо служебной учетной записи для пула приложений, который использовался SPWebApplication.
2-е решение состояло в том, чтобы установить атрибут привязки службы UseDefaultWebProxy в false
UseDefaultWebProxy = false
Конечно, эти решения зависят от ваших настроек прокси и пользовательских настроек. Мои настройки прокси-сервера были настроены так, чтобы обходить прокси-сервер для службы, которую я вызывал, поэтому я подозреваю, что настройки прокси-сервера (настроенные здесь: IE-> Свойства обозревателя-> Соединения-> Параметры локальной сети) не относятся к учетной записи службы, а только авторизованному пользователю. К этому моменту я и буду расследовать подробнее.
РЕДАКТИРОВАТЬ 1:
Хм. это на самом деле не принесло ничего нового в таблицу, я использовал psexec для просмотра настроек прокси-сервера в качестве учетной записи службы (netsh-> winhttp-> show proxy), и это выглядело правильно, поэтому я не думаю, что это может быть проблемой.
РЕДАКТИРОВАТЬ 2:
Окончательное решение , поэтому проблема заключалась в том, что мое веб-приложение SP не использовало параметры прокси-сервера, которые я настроил в IE, когда пул приложений запускался в контексте учетной записи службы, когда я использовал свою учетную запись пользователя для у пула приложений у меня проблем не было и использовались настройки прокси в IE. После небольшого исследования выяснилось, что я могу определить параметры прокси для своего SPWebApplication в web.config, и я решил просто отключить прокси
<system.net>
<defaultProxy enabled="false" />
</system.net>