首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dynamics社交网络加速器协议错误

Dynamics社交网络加速器协议错误
EN

Stack Overflow用户
提问于 2010-01-18 19:51:56
回答 1查看 360关注 0票数 0

我试图在我的Dynamics部署上实现微软的社交网络解决方案加速器。我已经解决了一些与代码有关的问题,但这最后一个问题让我感到困惑。社交网络加速器(以下简称SNA)使用以下代码从Twitter获取数据:

代码语言:javascript
复制
        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;
            }

显然,在调用此代码之前有很多设置。

credentials.

  • _URL

  • _creds包含有效Twitter用户
  • _creds

当我在visual studio或Dynamics之外的测试工具中运行这段代码时,它可以正常工作,并返回包含从Twitter返回的XML的字符串。

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

代码语言:javascript
复制
{"The remote server returned an error: (403) Forbidden."}

我怀疑这可能是由于我运行在ISA web代理服务器后面的事实,但是ISA中的日志控制台表明web请求永远不会有那么远。有什么东西导致这件事在源头上停滞了。有人有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-18 23:25:06

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

代码语言:javascript
复制
        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
            {

显然,这需要在某种程度上进行可配置,但它已经证明了这一概念。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2088765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档