【发布时间】:2015-06-28 13:11:55
【问题描述】:
我正在尝试使用 LinqToTwitter 从 ASP.NET CMS 将新闻文章发布到 Twitter。我创建了一个静态类来为我处理它,因为无论如何都会记录结果并且不会影响网站的其余部分。但是,当我尝试运行它并发布到 Twitter 时,会发生异常:
System.InvalidOperationException:异步模块或处理程序已完成,而异步操作仍处于挂起状态
全班:
public static class SocialTwitter
{
internal async static void PostTwitter(string message)
{
await Post(message);
}
private async static Task Post(string message)
{
var auth = new SingleUserAuthorizer
{
CredentialStore = new SingleUserInMemoryCredentialStore
{
ConsumerKey = ConfigurationManager.AppSettings["TwitterConsumerKey"],
ConsumerSecret = ConfigurationManager.AppSettings["TwitterConsumerSecret"],
AccessToken = ConfigurationManager.AppSettings["TwitterToken"],
AccessTokenSecret = ConfigurationManager.AppSettings["TwitterTokenSecret"]
}
};
await auth.AuthorizeAsync();
TwitterContext t = new TwitterContext(auth);
//Exception occurs here
Status tweet = await t.TweetAsync(Uri.EscapeDataString(message));
if (tweet != null)
{
Util.Log.Info(string.Format("Status posted: ({0}) {1}, {2}", tweet.StatusID, tweet.User.Name, tweet.Text));
}
else
{
Util.Log.Info("Error occurred posting status to Twitter");
}
}
}
奇怪的部分(至少对我来说)是我使用了 LinqToTwitter 的工具提示和文档中描述的函数。我知道 some 功能已完成,而另一个仍在运行,但这不是“await”关键字的用途吗?
我尝试在故障点后删除 PostTwitter 函数或代码,但结果仍然相同。我已经搜索了很多解决方案,但我可能只是在搜索或搜索错误的方向时很糟糕。我什至在 SO 上注册只是为了问这个问题! :D
【问题讨论】:
标签: c# asp.net asynchronous linq-to-twitter