<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_随心而动</title><subtitle type="text">.NET+其它相关程序设计相关的笔记与文档资料___lui(始于2005.12.8)linux/unix+c相关笔记与文档资料___lui(2009.9.12)</subtitle><id>http://feed.cnblogs.com/blog/u/15610/rss</id><updated>2011-05-21T13:18:37Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/15610/rss"/><entry><id>http://www.cnblogs.com/lj821022/archive/2011/05/21/2053078.html</id><title type="text">asp.net 页面上传服务器后 丢session 问题解决【转帖】</title><summary type="text">主要把web.config文件中下列项目的mode调为StateServer，得以解决。&lt;system.web&gt; &lt;sessionState mode="StateServer" cookieless="false" timeout="20" /&gt;下面为详细博文：转自：http://blog.163.com/da7_1@126/blog/static/104072678200811513742470/最近在做ASP.NET项目时，测试网站老是取不出Session中的值，在网上搜索了一下，找到一些解决方法，记录在</summary><published>2011-05-21T13:18:00Z</published><updated>2011-05-21T13:18:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2011/05/21/2053078.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2011/05/21/2053078.html"/><content type="html">&lt;p&gt;主要把web.config文件中下列项目的mode调为StateServer，得以解决。&lt;/p&gt;&lt;p&gt;&amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sessionState mode="&lt;span style="color: red"&gt;StateServer&lt;/span&gt;" cookieless="false" timeout="20" /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下面为详细博文：&lt;/p&gt;&lt;p&gt;转自：&lt;a href="http://blog.163.com/da7_1@126/blog/static/104072678200811513742470/"&gt;http://blog.163.com/da7_1@126/blog/static/104072678200811513742470/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;最近在做ASP.NET项目时，测试网站老是取不出Session中的值，在网上搜索了一下，找到一些解决方法，记录在这里。最后使用存储在StateServer中的办法解决了问题。 &lt;/p&gt;&lt;p&gt;SessionState 的Timeout)，其主要原因有三种。 &lt;/p&gt;&lt;p&gt;一：有些杀病毒软件会去扫描您的Web.Config文件，那时Session肯定掉，这是微软的说法。 &lt;/p&gt;&lt;p&gt;二:程序内部里有让Session掉失的代码，及服务器内存不足产生的。 &lt;/p&gt;&lt;p&gt;三：程序有框架页面和跨域情况。 &lt;/p&gt;&lt;p&gt;第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它) &lt;/p&gt;&lt;p&gt;第二种是检查代码有无Session.Abandon()之类的。 &lt;/p&gt;&lt;p&gt;第三种是在Window服务中将ASP.NET State Service 启动。 &lt;/p&gt;&lt;p&gt;下面是帮助中的内容: &lt;/p&gt;&lt;p&gt;(ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconsessionstate.htm) &lt;/p&gt;&lt;p&gt;ASP.NET 提供一个简单、易于使用的会话状态模型，您可以使用该模型跨多个 Web 请求存储任意数据和对象。它使用基于字典的、内存中的对象引用（这些对象引用存在于 IIS 进程中）缓存来完成该操作。使用进程内会话状态模式时请考虑下面的限制： &lt;/p&gt;&lt;p&gt;使用进程内会话状态模式时，如果 aspnet_wp.exe 或应用程序域重新启动，则会话状态数据将丢失。这些重新启动通常会在下面的情况中发生： &lt;/p&gt;&lt;p&gt;在应用程序的 Web.config 文件的 &amp;lt;processModel&amp;gt; 元素中，设置一个导致新进程在条件被满足时启动的属性，例如 memoryLimit。 &lt;/p&gt;&lt;p&gt;修改 Global.asax 或 Web.config 文件。 &lt;/p&gt;&lt;p&gt;更改到 Web 应用程序的 \Bin 目录。 &lt;/p&gt;&lt;p&gt;用杀毒软件扫描并修改 Global.asax 文件、Web.config 文件或 Web 应用程序的 \Bin 目录下的文件。 &lt;/p&gt;&lt;p&gt;如果在应用程序的 Web.config 文件的 &amp;lt;processModel&amp;gt; 元素中启用了网络园模式，请不要使用进程内会话状态模式。否则将发生随机数据丢失。 &lt;/p&gt;&lt;p&gt;还有这二种： &lt;/p&gt;&lt;p&gt;一：在第一个页面置了SESSION，然后REDIRECT去第二个页面。解决方法是在REDIRECT中设置endResponse为FALSE。 &lt;/p&gt;&lt;p&gt;二： ASP.NET中使用了ACCESS数据库，而且数据库是放在bin目录中的。解决方法是不要放会更新的文件在BIN目录中。 &lt;/p&gt;&lt;p&gt;参考：&lt;a href="http://www.dotnet247.com/247reference/msgs/58/290316.aspx"&gt;&lt;font color="#396e00"&gt;http://www.dotnet247.com/247reference/msgs/58/290316.aspx&lt;/font&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Asp.net 默认配置下，Session莫名丢失的原因及解决办法 &lt;/p&gt;&lt;p&gt;正常操作情况下Session会无故丢失。因为程序是在不停的被操作，排除Session超时的可能。另外，Session超时时间被设定成60分钟，不会这么快就超时的。 &lt;/p&gt;&lt;p&gt;这次到CSDN上搜了一下帖子，发现好多人在讨论这个问题，然后我又google了一下，发现微软网站上也有类似的内容。 &lt;/p&gt;&lt;p&gt;现在我就把原因和解决办法写出来。 &lt;/p&gt;&lt;p&gt;原因： &lt;/p&gt;&lt;p&gt;由于Asp.net程序是默认配置，所以Web.Config文件中关于Session的设定如下： &lt;/p&gt;&lt;p&gt;&amp;lt;sessionState mode='InProc' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='60'/&amp;gt; &lt;/p&gt;&lt;p&gt;我们会发现sessionState标签中有个属性mode，它可以有3种取值：InProc、StateServer?SQLServer（大小写敏感） 。默认情况下是InProc，也就是将Session保存在进程内（IIS5是aspnet_wp.exe，而IIS6是W3wp.exe），这个进程不稳定，在某些事件发生时，进程会重起，所以造成了存储在该进程内的Session丢失。 &lt;/p&gt;&lt;p&gt;哪些情况下该进程会重起呢？微软的一篇文章告诉了我们： &lt;/p&gt;&lt;p&gt;1、配置文件中processModel标签的memoryLimit属性 &lt;/p&gt;&lt;p&gt;2、Global.asax或者Web.config文件被更改 &lt;/p&gt;&lt;p&gt;3、Bin文件夹中的Web程序（DLL）被修改 &lt;/p&gt;&lt;p&gt;4、杀毒软件扫描了一些.config文件。 &lt;/p&gt;&lt;p&gt;更多的信息请参考PRB: Session variables are lost intermittently in ASP.NET applications &lt;/p&gt;&lt;p&gt;解决办法： &lt;/p&gt;&lt;p&gt;前面说到的sessionState标签中mode属性可以有三个取值，除了InProc之外，还可以为StateServer、SQLServer。这两种存Session的方法都是进程外的，所以当aspnet_wp.exe重起的时候，不会影响到Session。 &lt;/p&gt;&lt;p&gt;现在请将mode设定为StateServer。StateServer是本机的一个服务，可以在系统服务里看到服务名为ASP.NET State Service的服务，默认情况是不启动的。当我们设定mode为StateServer之后，请手工将该服务启动。 &lt;/p&gt;&lt;p&gt;这样，我们就能利用本机的StateService来存储Session了，除非电脑重启或者StateService崩掉，否则Session是不会丢的（因Session超时被丢弃是正常的）。 &lt;/p&gt;&lt;p&gt;除此之外，我们还可以将Session通过其他电脑的StateService来保存。具体的修改是这样的。同样还在sessionState标签中，有个stateConnectionString='tcpip=127.0.0.1:42424'属性，其中有个ip地址，默认为本机（127.0.0.1），你可以将其改成你所知的运行了StateService服务的电脑IP，这样就可以实现位于不同电脑上的Asp.net程序互通Session了。 &lt;/p&gt;&lt;p&gt;如果你有更高的要求，需要在服务期重启时Session也不丢失，可以考虑将mode设定成SQLServer，同样需要修改sqlConnectionString属性。关于使用SQLServer保存Session的操作，请访问这里。 &lt;/p&gt;&lt;p&gt;在使用StateServer或者SQLServer存储Session时，所有需要保存到Session的对象除了基本数据类型（默认的数据类型，如int、string等）外，都必须序列化。只需将[Serializable]标签放到要序列化的类前就可以了。 &lt;/p&gt;&lt;p&gt;如： &lt;/p&gt;&lt;p&gt;[Serializable] &lt;/p&gt;&lt;p&gt;public class MyClass &lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;...... &lt;/p&gt;&lt;p&gt;} &lt;/p&gt;&lt;p&gt;具体的序列化相关的知识请参这里。 &lt;/p&gt;&lt;p&gt;至此，问题解决。&lt;/ca&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lj821022/aggbug/2053078.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lj821022/archive/2011/05/21/2053078.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2009/09/12/1565117.html</id><title type="text">GNU make 的主要预定义变量</title><summary type="text">GNU make 的主要预定义变量 预定义变量 含义 $* 不包含扩展名的目标文件名称。 $+ 所有的依赖文件，以空格分开，并以出现的先后为序，可能包含重复的依赖文件。 $&lt; 第一个依赖文件的名称。 $? 所有的依赖文件，以空格分开，这些依赖文件的修改日期比目标的创建日期晚。 $@ 目标的完整名称。 $^ 所...</summary><published>2009-09-12T01:08:00Z</published><updated>2009-09-12T01:08:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2009/09/12/1565117.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2009/09/12/1565117.html"/><content type="text">GNU make 的主要预定义变量 预定义变量 含义 $* 不包含扩展名的目标文件名称。 $+ 所有的依赖文件，以空格分开，并以出现的先后为序，可能包含重复的依赖文件。 $&lt; 第一个依赖文件的名称。 $? 所有的依赖文件，以空格分开，这些依赖文件的修改日期比目标的创建日期晚。 $@ 目标的完整名称。 $^ 所...</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2008/04/01/1133690.html</id><title type="text">shell程序中实现从ftp取文件的功能</title><summary type="text">代码段:--------------------------------------------------------ftp -n $OMCHOST &lt;&lt;EOF #ftp命令开始,OMCHOST变量为服务器地址user $REMOVE_USER $REMOVE_PAWD #用户名,密码cd `dirname $pmfile` #取一个文件的路径lcd $DESDIR #将上面取的的路...</summary><published>2008-04-01T14:58:00Z</published><updated>2008-04-01T14:58:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2008/04/01/1133690.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2008/04/01/1133690.html"/><content type="text">代码段:--------------------------------------------------------ftp -n $OMCHOST &lt;&lt;EOF #ftp命令开始,OMCHOST变量为服务器地址user $REMOVE_USER $REMOVE_PAWD #用户名,密码cd `dirname $pmfile` #取一个文件的路径lcd $DESDIR #将上面取的的路...</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2008/03/19/1113921.html</id><title type="text">装oracle9i客户端访问oracle9i服务器</title><summary type="text">1:装好oracle9i客户端后,找到D:\oracle\ora92\network\ADMIN\ tnsnames.ora文件(假如装在d盘),直接配置好服务器的信息.比如:nokia_omc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.xx.xx.xx)(PORT = 1521)) ) (CONN...</summary><published>2008-03-19T14:52:00Z</published><updated>2008-03-19T14:52:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2008/03/19/1113921.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2008/03/19/1113921.html"/><content type="text">1:装好oracle9i客户端后,找到D:\oracle\ora92\network\ADMIN\ tnsnames.ora文件(假如装在d盘),直接配置好服务器的信息.比如:nokia_omc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.xx.xx.xx)(PORT = 1521)) ) (CONN...</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2008/01/31/1059812.html</id><title type="text">unix服务器之间rcp,rsh等程序的信任机制建立</title><summary type="text">unix主机之间在用rcp，rsh等命令时,提示要输入密码,配置好双方的信任机制可以避免访问时输入密码:1:各主机用要使用的用户登陆.2:进入/etc目录,在hosts文件中将对方的ip 和主机名字(可以自己命名)配上,如:10.154.xxx.xxx hostname1 3:用cd 命令进入home目录,编辑.rhosts文件,将对方的主机名,用户名配上,如:hostname1 username...</summary><published>2008-01-31T05:08:00Z</published><updated>2008-01-31T05:08:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2008/01/31/1059812.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2008/01/31/1059812.html"/><content type="text">unix主机之间在用rcp，rsh等命令时,提示要输入密码,配置好双方的信任机制可以避免访问时输入密码:1:各主机用要使用的用户登陆.2:进入/etc目录,在hosts文件中将对方的ip 和主机名字(可以自己命名)配上,如:10.154.xxx.xxx hostname1 3:用cd 命令进入home目录,编辑.rhosts文件,将对方的主机名,用户名配上,如:hostname1 username...</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2008/01/31/1059788.html</id><title type="text">PowerBuilder程序中取数据库中值,值异常(正数变成负数或异常)</title><summary type="text">pb程序中得到的整形数据，如果值比较大的话，用getitemnumber（）函数取出来，会变成负数，那么将变量类型定义为long型，可以避免此错误。</summary><published>2008-01-31T04:47:00Z</published><updated>2008-01-31T04:47:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2008/01/31/1059788.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2008/01/31/1059788.html"/><content type="text">pb程序中得到的整形数据，如果值比较大的话，用getitemnumber（）函数取出来，会变成负数，那么将变量类型定义为long型，可以避免此错误。</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2007/11/07/952517.html</id><title type="text">ultraEdite编辑shell或perl程序时注意</title><summary type="text">用ultraEdite编辑unix下的文件时，不要用dos模式打开编辑，因为会产生一些隐藏的字符，导致shell或者perl程序在运行时不识别,而运行失败。</summary><published>2007-11-07T11:44:00Z</published><updated>2007-11-07T11:44:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2007/11/07/952517.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2007/11/07/952517.html"/><content type="text">用ultraEdite编辑unix下的文件时，不要用dos模式打开编辑，因为会产生一些隐藏的字符，导致shell或者perl程序在运行时不识别,而运行失败。</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2007/08/24/868830.html</id><title type="text">pb程序的编译发布</title><summary type="text">最近用pb开发个小程序，在编译发布时碰到些问题，以下总结：---------------------------------------------------------1：pb程序在开发环境下可以连上数据库运行，但编译成exe文件后不能运行，提示少dll文件，可以把相应的dll文件拷贝到exe所在的目录下。 比如：pbvm90.dll，libjcc.dll，libjsybheap.dll等。2...</summary><published>2007-08-24T11:27:00Z</published><updated>2007-08-24T11:27:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2007/08/24/868830.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2007/08/24/868830.html"/><content type="text">最近用pb开发个小程序，在编译发布时碰到些问题，以下总结：---------------------------------------------------------1：pb程序在开发环境下可以连上数据库运行，但编译成exe文件后不能运行，提示少dll文件，可以把相应的dll文件拷贝到exe所在的目录下。 比如：pbvm90.dll，libjcc.dll，libjsybheap.dll等。2...</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2007/08/02/840623.html</id><title type="text">关于sql server2000 的1068 与 1069 问题</title><summary type="text">机子上的sqlserver2000很久没有用了,服务也被我停掉了.今天因为要用到它,所以就来启用sqlserver服务和服务管理器,没想到我一启动服务它就报1068错误,一启动服务管理器就报1069错误.想想我机器装过很多东西,就试着停掉些其他服务,卸载了些程序,折腾了半天结果没有用.最后解决:发现1069问题的原因提示是登录不上,那么可能是因为我改过系统密码的原因吧.尝试从"管理工具"打开"服务...</summary><published>2007-08-02T10:31:00Z</published><updated>2007-08-02T10:31:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2007/08/02/840623.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2007/08/02/840623.html"/><content type="text">机子上的sqlserver2000很久没有用了,服务也被我停掉了.今天因为要用到它,所以就来启用sqlserver服务和服务管理器,没想到我一启动服务它就报1068错误,一启动服务管理器就报1069错误.想想我机器装过很多东西,就试着停掉些其他服务,卸载了些程序,折腾了半天结果没有用.最后解决:发现1069问题的原因提示是登录不上,那么可能是因为我改过系统密码的原因吧.尝试从"管理工具"打开"服务...</content></entry><entry><id>http://www.cnblogs.com/lj821022/archive/2007/07/04/806269.html</id><title type="text">面试题目(即要掌握方面)</title><summary type="text">1：软件工程方面：测试知识，项目控制，风险控制，软件项目的结构等（实际工作中该如何做，用些什么工具）2：基本的算法知识：二分查找，递归，冒泡等（可C操作）3：数据结构知识：如链表，堆栈，树等（可C操作）4：对一门语言的核心的掌握与理解5：计算机基础、网络基础知识，注重理解6：基本的面向对象知识（深入理解）7：SQL查询语言的知识8：实际上机能力、设计模式的实例、数据库操作等等。9：专业英语的阅读能...</summary><published>2007-07-04T14:14:00Z</published><updated>2007-07-04T14:14:00Z</updated><author><name>lui</name><uri>http://www.cnblogs.com/lj821022/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lj821022/archive/2007/07/04/806269.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lj821022/archive/2007/07/04/806269.html"/><content type="text">1：软件工程方面：测试知识，项目控制，风险控制，软件项目的结构等（实际工作中该如何做，用些什么工具）2：基本的算法知识：二分查找，递归，冒泡等（可C操作）3：数据结构知识：如链表，堆栈，树等（可C操作）4：对一门语言的核心的掌握与理解5：计算机基础、网络基础知识，注重理解6：基本的面向对象知识（深入理解）7：SQL查询语言的知识8：实际上机能力、设计模式的实例、数据库操作等等。9：专业英语的阅读能...</content></entry></feed>
