Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC-会话状态未通过->;断点不工作_Asp.net Mvc_Facebook_Visual Studio 2010_Debugging_Session State - Fatal编程技术网

Asp.net mvc ASP.NET MVC-会话状态未通过->;断点不工作

Asp.net mvc ASP.NET MVC-会话状态未通过->;断点不工作,asp.net-mvc,facebook,visual-studio-2010,debugging,session-state,Asp.net Mvc,Facebook,Visual Studio 2010,Debugging,Session State,问题已解决,请参见下面的 我现在做的是: 生成随机数->将其存储在会话->使用facebook的OAuth服务的“state”参数将其传递给facebook->验证返回的状态是否与我会话中的状态相同(这是为了CSRF保护) 这一直有效,没问题。但不知何故,它不再工作了(会话似乎是空的,因为当我尝试读取它时,我得到了一个NullReferenceException)。我可能改变了什么,但我不知道是什么 我试着在facebook返回状态的代码部分设置断点,但不知怎的,它永远不会到达断点。。。我的断点

问题已解决,请参见下面的

我现在做的是:

生成随机数->将其存储在会话->使用facebook的OAuth服务的“state”参数将其传递给facebook->验证返回的状态是否与我会话中的状态相同(这是为了CSRF保护)

这一直有效,没问题。但不知何故,它不再工作了(会话似乎是空的,因为当我尝试读取它时,我得到了一个NullReferenceException)。我可能改变了什么,但我不知道是什么

我试着在facebook返回状态的代码部分设置断点,但不知怎的,它永远不会到达断点。。。我的断点之间的代码会被执行,但我的断点不会被命中

这是执行所有操作的代码:

public ActionResult SignUpButton()
{
    int random = RandomHelpers.GetRandomInteger(null);
    Session.Add("facebookState", random.ToString(CultureInfo.InvariantCulture));

    ViewBag.Uri = "https://www.facebook.com/dialog/oauth?" +
        "client_id=" + _facebookAuthenticationService.GetAppId() + 
        "&redirect_uri=" + _facebookAuthenticationService.GetReturnUri() + 
        "&scope=email" +
        "&state=" + random;

    return PartialView();
}

public ActionResult Register()
{
    string error = Request.QueryString["error"];
    string state = Request.QueryString["state"];
    string originalState = Session["facebookState"].ToString();
(为了简洁起见,我去掉了其余部分)。SignUpButton函数返回一个局部视图,其中包含一个带有指向facebook的注册URL的按钮。Facebook返回到localhost:xxx/Account/Register(这是Register函数),该函数被命中(尽管Register中的断点不起任何作用),并在会话[“facebookState”].ToString()部分引发异常

这就是web.config中与会话相关的设置:

<sessionState mode="InProc">
  <providers>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</sessionState>

我就是搞不懂。我已经重写了代码,使其不再产生错误并从facebook graph API返回数据,但不能调试代码的这一部分是不可接受的(请注意:SingUpButton方法中的断点被命中)


我希望任何人都能帮助我。提前谢谢

天哪,那太愚蠢了。在发布这篇文章后(在寻找解决方案大约2小时后),我发现了问题所在:

Visual Studio更改了运行应用程序的端口。我将其设置为固定端口(右键单击MVC project->web->specific port),现在它工作正常

我现在觉得自己很愚蠢