我发现了有关此错误的几个不同问题,但似乎没有一个问题可以概述我的情况。
我正在创建一个网站,从我们公司的Twitter帐户中提取推文,并将其显示在社交墙上。我正在使用C#asp.NET webforms。 C#代码使用Linqtotwitter库来处理身份验证和“tweet pull”。它抓取推文并将它们转储到一个aspx文件中,作为一个很长的json字符串。然后,我们有一个jquery脚本,可以读取json并在页面上显示推文,非常漂亮。
该代码目前在我的开发盒上运行完美。但是当我将代码推送到生产时,我得到了这个.NET错误:
根据验证程序
,远程证书无效
我将在这里提供一些代码,但首先让我给你一些背景知识。我不知道这些信息是否相关,但谁知道。这个网站实际上是一个大型项目的一部分,可以容纳我们从营销到一台服务器的几个微小单页微网站,以减少它们造成的开销。这些微型网站都可以具有不同的主机名,但它们指向相同的IP地址。 httpmodule存在于该服务器上,并拦截所有进入的请求,并根据主机名将它们重定向到适当的子文件夹。
从我所做的研究来看,似乎SSL与此错误相关联。我对IT世界还很陌生,而且我正在学习更多关于SSL的知识,因为这个故障排除还在继续。这些微型网站所依赖的服务器上确实有一些SSL证书,其中一个微型网站使用SSL,但不是我目前正在处理的网站。但是,由于它们在这种意义上共享相同的IP地址,因此它们属于同一个网站。
这是C#LinqtoTwitter代码:
private SingleUserAuthorizer auth;
private TwitterContext twitterCtx;
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "application/json";
auth = new SingleUserAuthorizer
{
Credentials = new SingleUserInMemoryCredentials
{
ConsumerKey =
ConfigurationManager.AppSettings["twitterConsumerKey"],
ConsumerSecret =
ConfigurationManager.AppSettings["twitterConsumerSecret"],
TwitterAccessToken =
ConfigurationManager.AppSettings["twitterAccessToken"],
TwitterAccessTokenSecret =
ConfigurationManager.AppSettings["twitterAccessTokenSecret"]
}
};
if (auth.IsAuthorized)
{
twitterCtx = new TwitterContext(auth);
var tweetResponse =
(from tweet in twitterCtx.Status
where tweet.Type == StatusType.User &&
tweet.ScreenName == "OurProfile" &&
tweet.IncludeRetweets == true
select tweet)
.ToList();
Results.Text = twitterCtx.RawResult;
}
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (twitterCtx != null)
{
twitterCtx.Dispose();
twitterCtx = null;
}
}
有没有人对这里可能出现的问题有任何想法?就像我说的那样,我还是很新的,我甚至不知道如何在谷歌之外解决这个问题。可能是我们的服务器无法验证Twitter的SSL证书是否来自可靠来源的东西?如果我可以提供更多信息或更多代码,请告诉我。感谢您的时间和阅读我的帖子!