【问题标题】:Dynamics CRM Social Networking Accelerator Protocol ErrorDynamics CRM 社交网络加速器协议错误
【发布时间】:2010-01-18 19:51:56
【问题描述】:

我正在尝试在我的 Dynamics CRM 部署中实施 Microsoft 的社交网络解决方案加速器。我已经解决了一些代码问题,但最后一个问题让我很难过。社交网络加速器(以下简称 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 外部的测试工具中运行此代码时,它按预期工作并返回包含从 Twitter 返回的 XML 的字符串。

但是,当我在我的 CRM 系统中运行它时(作为工作流程的一部分),我在代码执行 wCli.OpenRead(_URL) 的地方收到“协议错误”。我跟踪了执行情况,在这两种情况下都使用了相同的 URL 和 Twitter 凭据,在 CRM 系统之外一切正常,在 CRM 内部,我得到了错误:

{"The remote server returned an error: (403) Forbidden."}

我怀疑这可能是因为我在 ISA Web 代理服务器后面运行,但是 ISA 中的日志记录控制台表明 Web 请求永远不会到达那么远。有些东西导致这在源头上停滞不前。有人有什么建议吗?

【问题讨论】:

    标签: social-networking dynamics-crm accelerator isaserver


    【解决方案1】:

    我已经确认这实际上是一个代理问题。我不确定我是否完全理解为什么会出现问题,但我尝试了这个小修复,它确实奏效了:

            case "GET":
                WebClient wCli = new WebClient();
                if (_creds != null)
                {
                    wCli.Credentials = _creds;
                }
                    //[TPL] Configure web proxy
                    IWebProxy proxy = new WebProxy("sbs", 8080);
                    proxy.Credentials = new NetworkCredential(@"DOMAIN\User", "password");
                    wCli.Proxy = proxy;
                try
                {
    

    显然这需要以某种方式进行配置,但它已经证明了这个概念。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2013-12-14
      • 1970-01-01
      相关资源
      最近更新 更多