我需要担心会话状态吗?

时间:2011-05-09 18:43:00

标签: asp.net asp.net-mvc-3 azure

大家都希望你能提供帮助。

我主要是Windows开发人员(winforms和wpf / mvvm),距离我上次的网络应用程序已有10年了,所以这可能是一个愚蠢的问题。

我刚刚重新开发了一份客户满意度调查表,因为我必须从头开始想出这个问题,我认为我会使用MVC 3和Razor。

调查问卷是一个单页网站,其控制器看起来像这样。

    Function Index(BrandName As String, CaseID As Integer, EventID As Integer) As ActionResult

        ViewData("Scores") = Scores

        Dim questionnaire As New Questionnaire

        questionnaire.CaseID = CaseID
        questionnaire.EventID = EventID
        questionnaire.BrandName = BrandName

        //Get Some specific branding from the database
        questionnaire.FullBrandName = "FullNameFromDatabaseTable"

        Return View(questionnaire)

    End Function


    Function Save(questionnaire As Questionnaire) As ActionResult

        If TryUpdateModel(questionnaire) Then
            SaveQuestionnaireToDatabase(questionnaire)
        Else
            Return RedirectToAction("Index")
        End If

        Return View()

    End Function

我已经删除了一些数据库代码和一些东西来获取签名的图片网址,因为我认为它不相关。

我不确定我是否完全理解视图和控制器之间发生的魔法,这是我提问的真正原因。

这与其他所有内容一起进入azure,我问的是关于会话状态的问题,因为这将在两个实例中进行负载平衡。访问页面无需身份验证,因为它只能完成一次。

非常感谢

p.s我无法获得vb样式引用,所以放入c#one。

2 个答案:

答案 0 :(得分:0)

如果您有任何需要跨实例共享/访问的内容,只需使用大约两周前上线的AppFabric Cache。我在this SO answer中提供了一个链接。好处是您可以使用缓存提供程序只需几行代码来设置,然后为可序列化的键/值对调用Put()和Get()。设置缓存时,您还可以通过简单的Web配置更改启用自定义asp.net会话状态提供程序 - Azure门户将为您自动生成xml。

答案 1 :(得分:0)

看起来你没有做任何触及会话的事情,所以不关心帖子去哪个服务器。处理请求的所有信息都随表单一起提交。

您可以查看here(特别是标题为实施添加新产品的部分),以消除表单数据如何映射回服务器端信息的一些谜团。