【问题标题】:TweetSharp from Azure?来自 Azure 的 TweetSharp?
【发布时间】:2013-06-04 21:59:23
【问题描述】:

我最近开始在我的 Twitter 个人资料中部署我功能齐全的 Twitter 机器人(它应该每天左右发布一个新的短篇故事)。它通过 Azure 上的 CRON 作业调用,并托管在 MVC 4 项目中。

但是,当我尝试在 Azure 中运行它(请记住,它在本地运行良好)时,我收到以下错误:

[NetworkInformationException (0x5): Access is denied]
   System.Net.NetworkInformation.SystemIPGlobalProperties.GetFixedInfo() +9059627
   System.Net.NetworkInformation.SystemIPGlobalProperties.get_FixedInfo() +172
   System.Net.NetworkInformation.SystemIPGlobalProperties.get_DomainName() +269
   System.Net.CookieContainer..ctor() +121
   Hammock.Web.WebQuery.AppendCookies(HttpWebRequest request) +242
   Hammock.Web.WebQuery.SetRequestMeta(HttpWebRequest request) +147
   Hammock.Web.WebQuery.HandleRequestMeta(WebRequest request) +146
   Hammock.Web.WebQuery.BuildPostOrPutFormWebRequest(PostOrPut method, String url, Byte[]& content) +680
   Hammock.Web.WebQuery.BuildPostOrPutWebRequest(PostOrPut method, String url, Byte[]& content) +168
   Hammock.Web.WebQuery.ExecutePostOrPut(PostOrPut method, String url, WebException& exception) +181
   Hammock.Web.WebQuery.Request(String url, WebException& exception) +252
   Hammock.Authentication.OAuth.OAuthWebQuery.Request(String url, WebException& exception) +157
   Hammock.RestClient.RequestImpl(RestRequest request) +943
   Hammock.RestClient.Request(RestRequest request) +74
   TweetSharp.TwitterService.WithHammockImpl(RestRequest request) +83
   TweetSharp.TwitterService.WithHammock(WebMethod method, String path) +120
   TweetSharp.TwitterService.SendTweet(SendTweetOptions options) +782

我认为这是因为它使用了 Azure 不支持的端口或类似的东西。或者是吗?我不知道从哪里开始解决这个问题,当我搜索它时,在网上找不到任何帮助。

这是我的代码。如您所见,访问令牌和机密是硬编码的,它们(就像我说的那样)在本地工作:

var service = new TwitterService("qwdwqdqwd", "qwdwqdqwdqwd");
service.AuthenticateWith("qwdqwdqwdqwd", "qwdqwdqwdwqd");

var status = "Collaborative short story of the day: Blah";
var response = service.SendTweet(new SendTweetOptions() {Status = status}); //crash!

有什么问题?

【问题讨论】:

    标签: c# azure twitter tweetsharp


    【解决方案1】:

    您在Azure Web SiteAzure Cloud Service 中运行您的项目吗?

    考虑到 StackTrace,稍微挖掘一下似乎SystemIPGlobalProperties 使用了一些不安全的方法。 Using unsafe methods requires full trust:

    警告使用不安全上下文编写的代码无法验证 是安全的,因此只有在代码完全受信任时才会执行。 换句话说,不安全的代码不能在不受信任的环境中执行 环境

    此外,对系统组件的低级别访问可能需要提升权限。 Windows Azure 网站不支持完全信任,因此您无法在 Azure 网站中运行此代码。

    如果您运行云服务,make sure that your code runs in Full Trust。如果这确实有帮助,那么run your code with elevated privileges。 (runtime 元素在你的 csdef 文件中)


    【讨论】:

    • 确实是一个Azure网站。那么除非我为它提供服务,否则我就没有希望了?
    • 试一试云服务——如果它在那里工作,恐怕 Hammock 会改变他们执行 Web 请求的方式,或者你必须选择一个你有更多控制权的云服务关于环境。
    【解决方案2】:

    问题自行解决。我让网站运行了几个星期,突然间,我注意到来自该帐户的推文。 CRON 作业每天都在运行,并且有很多错误 500 消息,但突然之间(没有接触代码),它工作了。

    肯定是 Azure 团队进行了一些底层更改。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2012-07-01
      • 2020-01-23
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多