重定向后,会话数据丢失???
答案 0 :(得分:1)
谢谢你的回复。我发现我写了一些文件到webapp,所以会话丢失
您的asp.net应用程序正在重启。您可能正在写入asp.net文件夹中的某个位置,该位置导致重新编译应用程序/而不仅仅是子文件夹。一个特殊的位置是bin文件夹,删除最小的文件,你得到一个回收(不应该有文件)。
通过写入asp.net文件夹之外的位置可以避免上述情况。另外,您可以在顶层写入不同的子文件夹,但不应该获得回收。
另一种选择是通过使用不同的SessionStoreProvider将会话移出进程。当使用基于内存的代码时,您的代码不应该依赖会话而不会丢失,因为还有其他原因可能导致asp.net回收。
您确实需要发布更多信息,在正常情况下不会在asp.net MVC2中丢失。
如果仅在1个请求期间引用TempData,则它是设计使然。它仅适用于下一个请求。
如果是常规会话,也许您在.config中只配置了基于cookie的会话,并且浏览器已阻止cookie。
也许您可以使用完整网址(使用http://mydomain)进行重定向,并且您使用的是无Cookie(或者浏览器阻止了Cookie并将其恢复为无Cookie),使用http://mydomain会使用asp .net不要将其视为应用程序内的请求,也不会将会话ID添加到URL。