网站发布到服务器Session总是丢失,用的是IIS7

porschev 2009-12-30 04:29:40
网站发布到虚拟主机上,服务器用的IIS7,登陆网站操作,session保存时间好像非常短,经常点击按钮或者是跳转页面时,就是丢失session,我们用IIS5.0发布在公司局域网中运行,从来没有出现过这样的问题。

麻烦高手解答一下。。。。
...全文
2544 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yasuzhanbo 2010-02-02
  • 打赏
  • 举报
回复
特别是服务器上面各种水平层次的网站都有
yasuzhanbo 2010-02-02
  • 打赏
  • 举报
回复
大多是服务器上你的站点和别人的站点使用一个程序池,使用独立的大多可以解决
ermachao 2009-12-31
  • 打赏
  • 举报
回复
Mark
SEEKARMOR 2009-12-30
  • 打赏
  • 举报
回复
我也碰到过这样的问题,解决的方法是用数据库保存session
参照:http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090304/158092.html
newdigitime 2009-12-30
  • 打赏
  • 举报
回复
其实最准确的应该是服务器负荷高,内存或其它资源非常紧张,在很短时间内就频繁回收资源.session有效期就很短了.

如果空间商不能解决,估计你只能换别家的空间商了.或者改程序代码,譬如改为cookie存值.
porschev 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wuyq11 的回复:]
是否使用同一个应用程序池,丢失问题很多
改成    <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" /

ASP.Net的 runat='server' 会对ViewStat进行MAC的加密,使得提交数据时只能对同一页面进行。
1 在接收页加上 @ page EnableViewStateMac="false"
或者 enableEventValidation="false" viewStateEncryptionMode ="Never" 
也可以在web.config的节点里加入:
<system.web>
    <pages  enableEventValidation="false" viewStateEncryptionMode="Never" />
</system.web>
2 配置matchineKey
<system.web>
    <machineKey validation="3DES" validationKey="319B474B1D2B7A87C996B280450BB36506A95AEDF9B51211"
decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A87" decryption="3DES"/>
</system.web>

[/Quote]


我试一下。。。谢谢了。。。。
wuyq11 2009-12-30
  • 打赏
  • 举报
回复
是否使用同一个应用程序池,丢失问题很多
改成 <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" /

ASP.Net的 runat='server' 会对ViewStat进行MAC的加密,使得提交数据时只能对同一页面进行。
1 在接收页加上 @ page EnableViewStateMac="false"
或者 enableEventValidation="false" viewStateEncryptionMode ="Never"
也可以在web.config的节点里加入:
<system.web>
<pages enableEventValidation="false" viewStateEncryptionMode="Never" />
</system.web>
2 配置matchineKey
<system.web>
<machineKey validation="3DES" validationKey="319B474B1D2B7A87C996B280450BB36506A95AEDF9B51211"
decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A87" decryption="3DES"/>
</system.web>
porschev 2009-12-30
  • 打赏
  • 举报
回复
UP...UP...UP...还没有解决啊。。。。
porschev 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kele1006 的回复:]
你做了负载均衡,当集群指定访问网站的时候,如果你用作Session的站点服务器,不是你那当前访问网站的服务器,那么Session丢失是必须的
[/Quote]

这个能有什么方法解决吗?能详细的说一下吗?
kele1006 2009-12-30
  • 打赏
  • 举报
回复
你做了负载均衡,当集群指定访问网站的时候,如果你用作Session的站点服务器,不是你那当前访问网站的服务器,那么Session丢失是必须的
porschev 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cfesc9 的回复:]
引用 6 楼 porschev 的回复:
引用 4 楼 cuike519 的回复:
1、环境问题,咨询服务器提供商。
2、程序问题,检查程序。


现在我们是内部测式,挂在一个虚拟主机上的,是个主享服务器,里面有很多网站
这样有什么可能导致session丢失吗?  他用的是IIS7,我们是用VS08开发的。。

不会吧,我今天弄了几个网站,没事儿呀,IIS7,vs2005,到现在没发现有报错的返馈呢
[/Quote]

也不太清楚是什么问题。我们在内网发布就没有发现过这种问题,发布到这个虚拟机测式,就出现了
这样丢session的问题
cfesc9 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 porschev 的回复:]
引用 4 楼 cuike519 的回复:
1、环境问题,咨询服务器提供商。
2、程序问题,检查程序。


现在我们是内部测式,挂在一个虚拟主机上的,是个主享服务器,里面有很多网站
这样有什么可能导致session丢失吗?  他用的是IIS7,我们是用VS08开发的。。
[/Quote]
不会吧,我今天弄了几个网站,没事儿呀,IIS7,vs2005,到现在没发现有报错的返馈呢
porschev 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cuike519 的回复:]
1、环境问题,咨询服务器提供商。
2、程序问题,检查程序。
[/Quote]

现在我们是内部测式,挂在一个虚拟主机上的,是个主享服务器,里面有很多网站
这样有什么可能导致session丢失吗? 他用的是IIS7,我们是用VS08开发的。。
porschev 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liujialei7273 的回复:]
Session超时和莫名丢失的处理
原因:
1.改动global.asax  webconfig  bin  目录里的东西,导致Web Application重启
2.有些杀毒软件会去扫描webconfig文件,也会导致Session丢失
3.服务器内存不足导致Session丢失
4.程序内部有让Session丢失的代码
5.程序有框架页面和跨域情况
解决:
1.修改webconfig中timeout的时效时间
2.建议让网站使用独立的应用程序池
3.iis设置Session超时时间(默认为20分钟)
4.在应用程序池上打开网站对应的应用程序池属性,将web数量改为1 重启iis
5.在主页里面嵌套一个框架页iframe,设置宽度高度为0.在里面的加载页面里的
<head>里面加入 <meta http-equiv="refresh" content="1080">这一句,意思是每隔18分钟向服务器发送一次请求。刚好赶在Session失效之前。这样session就永不失效了
[/Quote]

IIS7怎么感觉session随时都会丢,根本没有默认的20分钟,
有时点击按钮操作和页面跳转操作都会丢失session
cuike519 2009-12-30
  • 打赏
  • 举报
回复
1、环境问题,咨询服务器提供商。
2、程序问题,检查程序。
BaoShiqiang 2009-12-30
  • 打赏
  • 举报
回复
只用过5.0 5.1的 没出现过这样的问题
  • 打赏
  • 举报
回复
Session超时和莫名丢失的处理
原因:
1.改动global.asax webconfig bin 目录里的东西,导致Web Application重启
2.有些杀毒软件会去扫描webconfig文件,也会导致Session丢失
3.服务器内存不足导致Session丢失
4.程序内部有让Session丢失的代码
5.程序有框架页面和跨域情况
解决:
1.修改webconfig中timeout的时效时间
2.建议让网站使用独立的应用程序池
3.iis设置Session超时时间(默认为20分钟)
4.在应用程序池上打开网站对应的应用程序池属性,将web数量改为1 重启iis
5.在主页里面嵌套一个框架页iframe,设置宽度高度为0.在里面的加载页面里的
<head>里面加入<meta http-equiv="refresh" content="1080">这一句,意思是每隔18分钟向服务器发送一次请求。刚好赶在Session失效之前。这样session就永不失效了
porschev 2009-12-30
  • 打赏
  • 举报
回复
有高手解答一下吗?。。。

有时还会报。Sys.WebForms.PageRequestManagerServerErrorException:验证视图状态MAC失败。如果此应用程序由网络场和群集承载,请确保<machineKey>配置指定了相同的 validationKey 和 验证算法。不能在群集中使用 AutoGenerate。。。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧