Facebook MVC应用程序演示中的System.Collections.Generic.KeyNotFoundException

时间:2015-02-25 17:48:44

标签: c# asp.net-mvc facebook asp.net-mvc-4

我实际上是按照这篇文章来尝试Facebook应用开发:http://www.asp.net/mvc/overview/getting-started/aspnet-mvc-facebook-birthday-app

当我启动应用程序时,我首先获得了授权弹出窗口,要求我访问信息,但是当我按下"确定"和fb加载我的页面,我得到以下异常:

[KeyNotFoundException: The given key was not present in the dictionary.]
    System.Collections.Generic.Dictionary`2.get_Item(TKey key) +11165993
    Microsoft.AspNet.Facebook.PermissionsStatus.ConvertApiResult(IList`1 apiResults) +134
    Microsoft.AspNet.Facebook.Providers.DefaultFacebookPermissionService.GetUserPermissionsStatus(String userId, String accessToken) +79
    Microsoft.AspNet.Facebook.Authorization.FacebookAuthorizeFilter.OnAuthorization(AuthorizationContext filterContext) +3091
    System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) +97
    System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__19(AsyncCallback asyncCallback, Object asyncState) +743
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +14
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
    System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeAction(ControllerContext controllerContext, String actionName, AsyncCallback callback, Object state) +343
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1c(AsyncCallback asyncCallback, Object asyncState, ExecuteCoreState innerState) +25
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +30
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
    System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback callback, Object state) +465
    System.Web.Mvc.Controller.<BeginExecute>b__14(AsyncCallback asyncCallback, Object callbackState, Controller controller) +18
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +20
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
    System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +374
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +16
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(AsyncCallback asyncCallback, Object asyncState, ProcessRequestState innerState) +52
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +30
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +384
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +48
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +301
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

我已经尝试了两次设置项目,同样的问题。 我的fb app id,app secret和app namespace都设置正确。 关于堆栈跟踪,我怀疑某种授权问题,但由于我是fb开发的新手,我不知道可能出现什么问题,谷歌并没有给我这么多帮助。

有什么建议吗?

编辑1

我已经更新了我的facebook API的nuget参考资料,因为我怀疑FB更改了他们的API并且图书馆知道了许可状态的返回代码...没有成功,仍然是同样的错误

1 个答案:

答案 0 :(得分:0)

Microsoft.AspNet.Mvc.Facebook库中存在问题。我修补了lib并将修复程序发送到AspNetMvcStack团队进行审核/集成。 一切都在机票中解释:)

票证:https://aspnetwebstack.codeplex.com/workitem/2241