2011-10-31 60 views
1

這裏就是我得到這個錯誤行:ERROR在Twitterizer.OAuthUtility.GetRequestToken()「值不能爲空參數名:字符串」

var requestToken = OAuthUtility.GetRequestToken(
    _consumerKey, 
    _consumerSecret, 
    "http://mysite.com/Twitter/GetToken"); 

_consumerKey和_consumerSecret有正確的價值觀。

堆棧跟蹤:

[ArgumentNullException: Value cannot be null. Parameter name: String] System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9585854 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119 Twitterizer.TwitterizerException.ParseRateLimitHeaders(WebResponse response) in C:\Projects\twitterizer-132\Twitterizer2\Exceptions\TwitterizerException.cs:200 Twitterizer.TwitterizerException..ctor(String message, Exception innerException) in C:\Projects\twitterizer-132\Twitterizer2\Exceptions\TwitterizerException.cs:98 Twitterizer.OAuthUtility.GetRequestToken(String consumerKey, String consumerSecret, String callbackAddress) in C:\Projects\twitterizer-132\Twitterizer2\OAuth\OAuthUtility.cs:95 Brace.Twitter.Tweeting.GetRequestTokenUrl() in D:\PROJECTS\Brace\v1\Brace.Twitter\Tweeting.cs:18 Brace.Controllers.TwitterController.GetToken(String oauth_token, String oauth_verifier) in D:\PROJECTS\Brace\v1\Brace\Controllers\TwitterController.cs:15 lambda_method(Closure , ControllerBase , Object[]) +157 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 parameters) +208 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 parameters) +27 System.Web.Mvc.<>c_DisplayClass15.b_12() +55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1 continuation) +263 System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList 1 filters, ActionDescriptor actionDescriptor, IDictionary 2 parameters) +191 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343 System.Web.Mvc.Controller.ExecuteCore() +116 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37 System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21 System.Web.Mvc.Async.<>c__DisplayClass8 1.b__7(IAsyncResult ) +12 System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 System.Web.Mvc.<>c_DisplayClasse.b_d() +50 System.Web.Mvc.SecurityUtil.b_0(Action f) +7 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8963149 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

回答

1

這裏是在過於模糊我的最好的嘗試:這個錯誤實際上是另一個問題的症狀。

很可能,您的應用程序(不是您的實際應用程序,而是使用Twitter註冊您的控制檯令牌)未設置爲Web應用程序。它們的形式具有誤導性:當您選擇一個Web應用程序時,它不會使回調網址成爲必需,但實際上它是必需的。當您保存沒有回調網址的應用程序時,它實際上會將其保存爲桌面應用程序。

桌面應用程序的問題是您無法使用回叫網址。 Web應用程序可以使用基於引腳的身份驗證,但桌面應用程序無法使用基於Web的身份驗證。 (我敢肯定有一個很好的理由。)

所以,微博拒絕你的請求獲取請求令牌,因爲你也提供了回調。

實際的例外是因爲Twitterizer仍然在尋找包含在每個(好的,好的,幾乎每個)響應中的速率限制信息,即使是失敗的請求也是如此。

我會(終於)解決這個問題,但它不會解決你真正的問題。

+0

謝謝!這確實是誤導,但現在我看到了精美的印刷:)「要限制應用程序使用回調,請將此字段留空。」我添加回調URL後,現在一切正常。感謝您的快速響應! – Anil

+0

美好的時光。感謝那。 – ThePower

+0

Anil和@ThePower:昨天發佈的版本應該解決了這個問題。 –

相關問題