我正在使用Jquery编写一个ASP.Net MVC应用程序,将一些数据发布到我的用户会话中。
用户1st访问我网站的页面,然后我有一个按钮,使用JQuery执行帖子到MVC控制器方法将一些数据存储到用户会话中。
当初始页面加载时,我使用会话工厂为我的用户创建一个会话对象。这很好用。作为对我的页面的初始请求的一部分,我将一个名为JoinState的对象放入我的会话中 - 这必须适用于任何后续请求。
当用户单击页面上的按钮时,将执行JQuery帖子以将数据添加到JoinState对象。这将发布到MVC控制器方法,该方法访问已定义的会话并使用发布的数据更新JoinState对象。
但是,当帖子发生时,我的应用程序无法识别创建的初始会话。这导致“对象未设置为实例....”(基本上是空引用异常),因为现在已经定义的JoinState对象不存在。
我无法弄清楚为什么会这样。到目前为止我所做的工作如下:
出于某种原因,在我的JQuery帖子中,我的原始会话无法识别。
提前致谢。
答案 0 :(得分:0)
我不确定这一点,但我认为jQuery帖子就像调用Web服务一样,因此不会引用你的对象。
您需要传回会话密钥或其他内容,以便加载它然后添加到其中。
所有这些都是我的头脑,完全没有经过测试。
如果我错了,请告诉我,我会做一些测试,也许会删除这个答案,以免混淆问题。
答案 1 :(得分:0)
如果网址名称是动态的,则当网址名称发生更改时,ASP.Net发出的会话cookie将无效,因此您将丢失与现有会话的连接。 您可以将网站配置为无cookie会话,但您必须检查是否需要手动附加会话密钥查询字符串变量。
答案 2 :(得分:0)
嗯,,,,,,问题现在解决了。
...事实
...发现
每次发生请求时,都会遇到新的工作进程。因为会话存储在InProc中,或者存储在每个单独进程的内存中,所以每次请求获得新WP时都会有一个新会话。
最后的结论......
工作流程现在重新设置为1 - 应用程序正在运行。
睡觉的时间 - 感谢所有回复的人。