问题描述
在本地测试的时候,就能够获取到session和cookie的值,而上传到服务器之后,创建session、和cookie都能成功,在浏览器里面查看cookie可以看到,而且也有值,但是就是读取的时候,都读取不到数据,求大神看看我的代码这个是在一个ashx文件中创建cookiereader里面是读取的一个字段HttpCookiehc=newHttpCookie(reader.GetString(0),"已订阅");hc.Expires=DateTime.Now.AddDays(300);hc.Path="/";hc.Secure=false;hc.HttpOnly=true;context.Response.Cookies.Add(hc);
这个是在ashx文件中创建的sessioncontext.Session["username"]=uid;
这个是aspxcs文件里面读取创建后的cookieHttpCookiehc=Request.Cookies[reader.GetString(2)];if(hc==null){}
这个是读取session的if(Session["username"]!=null){}
都获取不到数据,是咋回事呢。求大神帮忙指点一下本地测试都没问题,发布之后上传服务器就不行了
解决方案
解决方案二:
ashx使用Session需要继承IReadOnlySessionState接口cookie需要注意key的设置和获取的是否同一个?你打印出key是什么,HttpCookiehc=newHttpCookie(reader.GetString(0),"已订阅");reader.GetString(2)值是一样的吗?另外,cookie有数量限制。最主要的是不能跨域。参见Cookie有数量和大小的限制http://blog.csdn.net/marising/article/details/4842719
解决方案三:
引用1楼net_lover的回复:
ashx使用Session需要继承IReadOnlySessionState接口cookie需要注意key的设置和获取的是否同一个?你打印出key是什么,HttpCookiehc=newHttpCookie(reader.GetString(0),"已订阅");reader.GetString(2)值是一样的吗?另外,cookie有数量限制。最主要的是不能跨域。参见Cookie有数量和大小的限制http://blog.csdn.net/marising/article/details/4842719
session的接口添加了,因为本地测试的时候就可以用reader.GetString(2)和(0)是一个值数量限制没有超刚刚用5个cookie作用域的话我加上path了啊
解决方案四:
引用1楼net_lover的回复:
ashx使用Session需要继承IReadOnlySessionState接口cookie需要注意key的设置和获取的是否同一个?你打印出key是什么,HttpCookiehc=newHttpCookie(reader.GetString(0),"已订阅");reader.GetString(2)值是一样的吗?另外,cookie有数量限制。最主要的是不能跨域。参见Cookie有数量和大小的限制http://blog.csdn.net/marising/article/details/4842719
hc.Domain="zixuebj.com";这个也加上了还是不行
解决方案五:
不光是这些我有一个页面通过js的post方法请求ashx文件ashx文件返回拼接好的html字符串然后通过js中append到一个div里面这个div在一个aspx文件里我在本地测试的时候,都没有问题,但是上传到服务器上之后,就失效了,获取不到任何数据
解决方案六:
应该是没有Cookie的作用域!
解决方案七:
估计你是多个二级域名吧,不像测试环境都是localhost
解决方案八:
用浏览器的调试工具查看Cookie是否保存