易截截图软件、单文件、免安装、纯绿色、仅160KB

ASP.NET中的session存储模式

在asp.net中的Session存储方式不象asp那样单一,一共提供了三种存储方式,由于最近一个2000多人使用的web软件出现了故障,用户每天早上在某一时刻出现难以登陆现象,接着Session丢值出现,只有重启IIS,或机器.这时程序恢复正常了.整天都不会出现同样的问题 ,但是第二天依旧!这种现象持续了好几天,我检查了一下日志文件,高峰每秒访问人数大概20人左右,同时大概100多人在线,以后访问人数还会增加,为了解决这个怪问题,先从软件着手,故而三种方式都应用了一番。
打开web.config文件
< sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
其中默认的mode是InProc类型,这种模式和以前ASP模式一样,就是服务器将Session信息存储在IIS进程当中,当IIS关闭、重起后这些进程信息都会丢失,但这种模式的性能最高(具体没测,看书上说),这种模式是asp.net的默认方式。
由于这种模式出现了故障,当时我的考虑就是由于访问量过大的原因,导致Inetinfo.exe进程崩溃。用户难以登陆以致Session丢值出现故障,我采用了另外一种Session的存储方式把Session信息存储在进程外。
首先,打开管理工具找到服务,找到名为:asp.net State Service的服务,启动它.并且改成自动启动。这时你可以在任务管理器中看到一个名为aspnet_state.exe的进程。这就是我们保存session信息的进程。
然后,回到web.config文件中把Mode的值改为StateServer,保存文件。OK.
< sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=192.10.78.76;User id=sa;password=sa"
cookieless="false"
timeout="20"
/>
这种模式当我们重起IIS,保存的session值不会丢失。另外这种方式还可以把信息保存在其他机器的进程中,不过还要更改 stateConnectionString="tcpip=127.0.0.1:42424",IP地址改为其他机器即可。
另外还采取了其他的措施.比如把数据库和Web服务器分开,数据库服务器不提供WEB服务,Web服务器不提供数据库服务,
然后把连接池扩大,由于asp.net中ADO.NET数据访问默认连接池数量为100, 后来我扩大到6000顺便把写法加上来
“Server=(local);
Database=rgs;
password=sa;
user ID=sa;
Max Pool Size =6000;
Min Pool Size =5;
Pooling=True&rdqu


相关文档:

关于asp.net用户登录权限代码

我在做图书管理系统,用户管理权限,在asp。net里,不用session的话,应该用什么代码
protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
        & ......

asp.net mvc框架中json序列化的控制

先看下面的一段代码:
 public class UserTest
        {
           public int age { set; get;
}          
     public string name { set; get; }  & ......

ASP.NET防SQL注入脚本程序

public class SqlCheck  
{  
    public SqlCheck()  
    {  
        //  
        // TODO: 在此处添加构造函数逻辑  
  & ......

ASP.NET控件开发基础之实现控件集合属性

集合属性相信大家都很熟悉也很常用,如DropDownList,ListBox等控件
﹤asp:DropDownList ID="DropDownList1" runat="server"﹥              ﹤asp:ListItem﹥测试1﹤/asp:ListItem﹥    & ......

ASP.NET(ASPX)页面获取form表单提交元素的值


html知识,Request.Form
接收的是Name值,而非ID值
若是用aspx页面取值,表单中的runat="server"要去掉。
asp.net知识,asp.net的控件的ID和Name值是一样第,但是其在客户端表现是control.clientID而非
control.ID
asp.net本身也是可以跨页提交滴,如果是使用自己带的跨页提交就不存在上述问题,不过as ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号