关于httpcontext实际使用时出现的一个问题

转载 2006年06月04日 20:44:00
在一次实际开发过程中,需要同步服务器上的用户,用户同步是通过XML文件来获取,当时还有一个配置文件也是xml文件放在本地,这个时候就需要使用到Server.MapPath功能或HttpContext.current.server.mappath功能,把相对路径转变成绝对路径,以用来对XML文件的读取、删除操作。本来这个功能非常简单,但是由于用户同步需要在规定间隔内自动同步,这个时候我用了timer时间触发器,在Global.asax.cs里代码如下:
 1protected void Application_Start(Object sender, EventArgs e)
 2        {
 3            
 4            
 5            Timer time = new Timer(1000 * 60 * 2);
 6            time.Elapsed +=new ElapsedEventHandler(time_Elapsed);
 7            time.AutoReset = true;
 8            time.Enabled = true;    
 9
10    
11
12        }

    时间间隔处理事件如下:
1private void time_Elapsed(object sender, ElapsedEventArgs e)
2        {
3            
4            web.User.SSOUtility su = new web.User.SSOUtility();
5            su.SynUser();
6            
7        }

    而此时在SSOUtility.cs文件里设置读取配制文件和下载到本地的同步用户文件
1private static string UserXmlFile = HttpContext.Current.Server.MapPath("SBWLogin/user.xml");
2        private static string SSOConfigFile = HttpContext.Current.Server.MapPath("SBWLogin/SSOConfig.xml");

 通过一个Button来触发SynUser()事件,一切运行正常,但到通过Timer来控制时,发现数据不能同步,通过调试发现,原来程序一运行到
1private static string UserXmlFile = HttpContext.Current.Server.MapPath("SBWLogin/user.xml");
2        private static string SSOConfigFile = HttpContext.Current.Server.MapPath("SBWLogin/SSOConfig.xml");
就出错,查了半天才发现原来是httpcontext这个上下文HTTP请求信息在时间间隔触发时,根本就不起作用,也就是说不能获取上下文HTTP请求对象,后来把这二句读取文件和语句放到Global.asax.cs上来,并修改SSOUtility  构造函数用来实例化对象时,传入二个文件的绝对地址。如下:
1private void time_Elapsed(object sender, ElapsedEventArgs e)
2        {
3            
4            web.User.SSOUtility su = new web.User.SSOUtility(UserXmlFile, SSOConfigFile);
5            su.SynUser();
6            
7        }

这时再运行程序,一切OK。
以前总以为只要我在vs.net 2003里能出现httpcontext.current这些提示,并且编译通过就应该没有问题了,经过这次的经历,才发现httpcontext通过页面触发没有问题,直接从Global.asax.cs调用也行,但只能执行一次,但从Global.asax.cs的timer时间间隔事件中触发时,其实例化对象获取失败。

    终于写完了,这可是我的处女作啊,本人经验有限,可能会出现一些不当之处,敬请谅解,还希望高手能够指正我的错误,多给点意见,也能让自己多学点东西

相关文章推荐

Android中基于ServerSocket的实际使用与简单介绍(内附一个PC端群控多台手机的消息发送和接收Demo)

Android ServerSocket的应用Demo,欢迎查看~~

swift实际使用中遇到的问题及解决

好久没有更新博客了。一是,最近加班,懒了。二是,没东西可以去写,也就是最近没有去学习新的东西。4号,swift开源了。感觉是应该真正的去用一下。只有用了,才能快速的学习。所以,自己尝试着去用swift...

swift实际使用中遇到的问题及解决(2)

上篇介绍了初步使用,接下来是进阶使用中遇到的问题。首先你的项目需要一个网络请求库,比如在OC中我们使用AFNetwork,同样,他的作者在Swift下也写了一个网络请求库:Alamofire。不过,它...

设计模式-单例模式(Singleton)在Android中的应用场景和实际使用遇到的问题

介绍在上篇博客中详细说明了各种单例的写法和问题。这篇主要介绍单例在Android开发中的各种应用场景以及和静态类方法的对比考虑,举实际例子说明。单例的思考写了这么多单例,都快忘记我们到底为什么需要单例...

wpe经实际使用正常版

  • 2011-11-23 15:19
  • 326KB
  • 下载

15条 linux Find 命令实际使用方法

This article is written by SathiyaMoorthy 作者: SathiyaMoorthy   Apart from the basic operation o...

LINQ实际使用的一些例子

  • 2011-06-04 21:31
  • 2.21MB
  • 下载

Canvas的实际使用

  • 2017-09-10 10:47
  • 25.68MB
  • 下载

JAVA RSA加解密和数字签名、DES加解密 在项目中的实际使用

RSA: 1、生成随机秘钥对 2、用公钥加密私钥解密  客户端:RSA用公钥加密之后,需要对加密后的数据在进行Base64加密, 以便在HTTP协议之间传输(兼容各语言的差异性)。 服...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)