Я пытаюсь внедрить ускоритель решения социальных сетей Microsoft в моем развертывании Dynamics CRM. Я уже разрешил ряд проблем с кодом, но этот последний меня озадачил. Networking Accelerator Social (далее именуемая СНС) использует следующий код, чтобы получить данные из Twitter:Ошибка протокола ускорителя социальной сети CRM
case "GET":
WebClient wCli = new WebClient();
if (_creds != null)
{
wCli.Credentials = _creds;
}
try
{
using (Stream str = wCli.OpenRead(_URL))
{
using (StreamReader reader = new StreamReader(str))
{
responseXml = reader.ReadToEnd();
}
}
}
catch (WebException ex)
{
if (ex.Response is HttpWebResponse)
{
if ((ex.Response as HttpWebResponse).StatusCode == HttpStatusCode.NotFound)
{
return null;
}
}
throw ex;
}
Очевидно, что существует много установки до вызова этого кода.
- _creds содержит действительные учетные данные пользователя Twitter.
- _url содержит «http://twitter.com/statuses/replies.xml?since_id=1&page=1»
Когда я запускаю этот код в Visual Studio, или в тестовой упряжи вне Dynamics CRM, он работает, как ожидалось, и возвращает строку, содержащую XML вернулся из Twitter.
Но, когда я запускаю его внутри своей CRM-системы (как часть рабочего процесса), я получаю «Ошибка протокола» в точке, где код выполняет wCli.OpenRead (_URL). Я проследил выполнение и в обоих случаях используется тот же URL и учетные данные Twitter, вне системы CRM все работает, внутри CRM, я получаю ошибку:
{"The remote server returned an error: (403) Forbidden."}
Я подозреваю, что это может быть вызвано тем, что я бегу за веб-прокси-сервером ISA, однако консоль протоколирования в ISA предлагает, чтобы веб-запрос никогда не доходил до этого. Что-то заставляет это останавливаться у источника. У кого-нибудь есть предложения?