想达到你的目的从理论上要解决如下问题:
1、域名一致——保证浏览器回传给服务器的SESSION_ID一样。
2、网站设置——保证网站使用了远程统一服务器的,@何德海 的方法就可以。
3、远程统一状态服务器要设置为允许远程接入,同时让防火墙准入:
引用CSDN上一部分内容:修改Session服务器注册表中的项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \aspnet_state\Parameters中的AllowRemoteConnection 键的值为1,其中的Port值为 42424 ;修改后需要重启ASP.NET State Service;)
然后重启所有相关服务,试一下。
Session存储模式有多种的,可以选择StateServer和SQLServer存储,当然也可以自己实现。这里说下StateServer的方式,web.config配置
<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" timeout="20" />
然后服务器上开启服务 “ASP.NET 本地服务”
你说的这种方式我已试过, 行不通,在另外一个项目中获取不到session 值
@_jie: 哦?行不通?奇了怪了,我们好几个网站都这样弄的,都用的好好的。
@webaspx: 你是怎么弄的。 我是在IIS 根目录下添加了<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" timeout="20" /> ,其他的子程序项目的web.config 也添加了同样的sessionState 配置.
楼上说的是可以的.session共享方法多了.自己百度.这个是说不清楚的
我最直观的方法就是引用dll。。。。。。。。
或者你试试
http://download.csdn.net/detail/tl2008168/2131373试试这个呢。
memcache
使用session state server的话,还需要配置machineKey。
<machineKey decryptionKey=
"FD69B2EB9A11E3063518F1932E314E4AA1577BF0B824F369"
validationKey=
"5F32295C31223A362286DD5777916FCD0FD2A8EF882783FD3E29AB1FCDFE931F8FA45A8E468B7A40269E50A748778CBB8DB2262D44A86BBCEA96DCA46CBC05C3"
validation=
"SHA1"
decryption=
"Auto"
/>
<sessionState cookieless=
"false"
timeout=
"50"
mode=
"StateServer"
stateConnectionString=
"tcpip=127.0.0.1:42424"
/>