zoukankan      html  css  js  c++  java
  • session变量

       最近有部份网友给我发来邮件,这个程序能得到大家的关注,着实让我很高兴。在此谢过各位支持我的网友。

    程序无法运行可能是因为您的电脑没有开启asp.net状态服务,因为程序运行时所有的session变量的保存将会用到这个服务,之所以用这个保存session变量,是因为我在测试使用本程序过程中发现session变量很容易丢失,
    原因如下:

    由于Asp.net程序是默认配置,所以Web.Config文件中关于Session的设定如下:
    <sessionState mode='InProc' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='60'/>

    我们会发现sessionState标签中有个属性mode,它可以有3种取值:InProc、StateServer?SQLServer(大小写敏感) 。默认情况下是InProc,也就是将Session保存在进程内(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),这个进程不稳定,在某些事件发生时,进程会重起,所以造成了存储在该进程内的Session丢失。

    哪些情况下该进程会重起呢?微软的一篇文章告诉了我们:
    1、配置文件中processModel标签的memoryLimit属性
    2、Global.asax或者Web.config文件被更改
    3、Bin文件夹中的Web程序(DLL)被修改
    4、杀毒软件扫描了一些.config文件。
    5、asp.net进程序回收

    更详细说明请搜索网络“session 丢失原因”

    所以本程序的Session设定为mode="StateServer",用asp.net状态服务保存变量.

    在asp.net的配置文件web.config中加了一个键,用于存储注册码,程序运行时读取机器码,然后再生成注册码,对照一下配置文件内的注册码,如果一致就说明程序已注册,否则未注册。
    **************************
    你这样做是不可能读取硬件信息的!
    据我所知,运行asp.net的工作进程(winxp是aspnet.exe,win2003是w3wp.exe)默认情况下是没有权限调用System.Management命名空间中的类来读取硬件信息的,也就是说asp.net在运行的时候(程序运行在IIS上,而不是asp.net development server上)是无法读取硬件信息的。
    要使asp.net工作进行有权限调用System.Management命名空间中的类来读取硬件信息的,需要赋予asp.net工作进行管理员权限,有两个途径:
    1. 进程模拟,在web.config中:
    <identity impersonate="true" userName="Administrator" password="密码"/>

    2.指定asp.net工作运行在administrator帐户上,而不是默认的network service帐户。

  • 相关阅读:
    【操作系统】用Oracle VM VirtualBox 虚拟机安装XP系统时老是蓝屏
    c#操作Xml(六)
    c#操作Xml(五)
    c#操作Xml(三)
    c#操作Xml(四)
    新年快乐
    c#操作Xml(八)
    从IDataReader中读取数据实体
    c#操作Xml(七)
    c#操作Xml(二)
  • 原文地址:https://www.cnblogs.com/draeag/p/865369.html
Copyright © 2011-2022 走看看