有一个solution, 里面有两个asp.net web project, 在VS里启动调试,两个网站都运行起来了,占用的是不同的localhost端口,但是为什么A网站的Theme的更改会影响另一个也切换到相同的Theme呢?按理说这算是两个独立的网站,根本就不存在那个Theme所以挂掉了。
以前做过分布式的项目说是要设置客户端生成的身份验证cookie还是session的存储名称,以防止冲突,不知道和这个有没有关系,现在也找不到是哪个参数。 大神帮忙!!!!!!
不好意思之前以为是Session问题,现在发现是Cookie问题导致,因为Cookie是不区分端口号的,所以部署在一个asp.net服务器上的两个站点,如果Cookie名相同,会自动覆盖,并且读取是相同的数据,这个有办法解决吗?
能不能为Cookie设置端口号呢?
可能是因为这两个站点的cookie是同一个域名
如果是的话,那设置哪个值可以更改域名呢?
@沧海一杰: 你要把这两个网站放在不同的IIS站点上,并使用不同的域名访问
@dudu: 这个我觉得有点扯了,我觉得不会有这样的问题的,以前我们做过很多个大型网站在一个solution里这样运行也没有这种问题呀
@沧海一杰: 你可以用Firebug看一下有没有用到cookie
@dudu: 占用的是不同的localhost端口,已经是不同的域名了吧。
@小AI: 可能是的,这个没有实际测试过
@小AI: 参考:Are HTTP cookies port specific?
@沧海一杰: 建议两个站点绑定不同的域名
@dudu: Cookie 在设置的时候是可以设置Port的属性的。
@imfunny: 如果浏览器不区分的话,设置也起不了作用
Session是服务端的
不同站点的Session是不可能互相访问的,走的是不同的进程,任务管理器中可以看到有两个进程。
看一下修改这个Session的地方是不是只有一处
1。将两个项目都部署到IIS中再试试,做一个测试页面: 实时输出Session中的内容
2。在修改Session的地方记一下日志,看看修改时间,从时间上看是不是另一个站点修改导致的
你Session用什么存储的啊?会不会像楼上说的Session来自同一个地方了呢?