【发布时间】:2015-02-24 17:54:41
【问题描述】:
我正在尝试从我的页面代码中使用 Web API,并且在从 Web Api 获得响应后,我总是丢失我的 Session 值。
Dim formatter As New JsonMediaTypeFormatter()
Using client = New HttpClient()
Dim chkValue = HttpContext.Current.Session("UserName") // Has a value here
client.BaseAddress = New Uri(apiAddress)
client.DefaultRequestHeaders.Accept.Clear()
client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
Dim response As HttpResponseMessage = Await client.PostAsync("requestURI", "customObject", "formatter")
If response.IsSuccessStatusCode Then
HttpContext.Current.Session("UserName") // Referenced object has value of nothing
Else
End If
End Using
这是在使用 Async 修饰符的方法中,不确定这是否会导致这样的事情。
【问题讨论】:
-
您使用 2 个不同的会话对象来描述问题。您是说在 LoggedClientName 行测试
HttpContext.Current.Session("UserName")是引用存在的地方,而稍后在方法中不存在引用? -
抱歉应该是一样的。现已编辑。
-
我不会说你的是直接重复的,但也许这个相关问题的答案可能会有所帮助:stackoverflow.com/questions/27672598/…
-
感谢您的链接。我试过了,但没有用:(
标签: .net vb.net asp.net-web-api async-await session-variables