Я пытаюсь внедрить ускоритель решений Microsoft для социальных сетей в моем развертывании Dynamics CRM. Я уже решил ряд проблем с кодом, но этот последний поставил меня в тупик. Ускоритель социальных сетей (в дальнейшем именуемый SNA) использует следующий код для получения данных из Twitter:
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;
}
Очевидно, что есть много настроек до вызова этого кода.
Когда я запускаю этот код в Visual Studio или в тестовом комплекте вне Dynamics CRM, он работает как положено и возвращает строку, содержащую XML, возвращенную из Twitter.
Но когда я запускаю его внутри своей системы CRM (как часть рабочего процесса), я получаю «Ошибка протокола» в тот момент, когда код выполняет wCli.OpenRead (_URL). Я проследил за выполнением, и в обоих случаях используются одинаковые URL и учетные данные Twitter, вне системы CRM все работает, внутри CRM я получаю сообщение об ошибке:
{"The remote server returned an error: (403) Forbidden."}
Я подозреваю, что это может быть вызвано тем фактом, что я работаю за веб-прокси-сервером ISA, однако консоль ведения журнала в ISA предполагает, что веб-запрос никогда не заходит так далеко. Что-то заставляет это останавливаться у источника. У кого-нибудь есть предложения?