关于httpcontext实际使用时出现的一个问题
2006-05-24 17:52
656 查看
在一次实际开发过程中,需要同步服务器上的用户,用户同步是通过XML文件来获取,当时还有一个配置文件也是xml文件放在本地,这个时候就需要使用到Server.MapPath功能或HttpContext.current.server.mappath功能,把相对路径转变成绝对路径,以用来对XML文件的读取、删除操作。本来这个功能非常简单,但是由于用户同步需要在规定间隔内自动同步,这个时候我用了timer时间触发器,在Global.asax.cs里代码如下:
1protected void Application_Start(Object sender, EventArgs e)
2private void time_Elapsed(object sender, ElapsedEventArgs e)
2private 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时间间隔事件中触发时,其实例化对象获取失败。
终于写完了,这可是我的处女作啊,本人经验有限,可能会出现一些不当之处,敬请谅解,还希望高手能够指正我的错误,多给点意见,也能让自己多学点东西
1protected void Application_Start(Object sender, EventArgs e)
2private void time_Elapsed(object sender, ElapsedEventArgs e)
2private 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时间间隔事件中触发时,其实例化对象获取失败。
终于写完了,这可是我的处女作啊,本人经验有限,可能会出现一些不当之处,敬请谅解,还希望高手能够指正我的错误,多给点意见,也能让自己多学点东西
相关文章推荐
- 关于httpcontext实际使用时出现的一个问题
- 关于qsort使用时出现的一个问题
- 关于使用JSONObject出现的一个小问题
- 关于在同一个页面使用多个swiper,多个轮播出现冲突的问题?
- 关于一个android工程同时使用多个工程库,在编译时出现的问题
- 关于使用EJB时出现javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory的问题
- 关于ssh 框架 applicationContext.xml文件中配置hibernate数据库出现的一个小问题
- 关于解决在使用opencv时出现*.exe 已触发了一个断点的问题
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题
- 在IIS 6 中使用HTTP压缩(Compression)遇到的一个问题
- 关于在使用Hibernate时出现javassist.bytecode.DuplicateMemberException的问题
- 一个关于使用 $month,$dayOfMonth 进行按月/日统计的问题
- 请教一个在使用xtree过程中关于htc组件编写的问题
- 关于VS2008不能调试使用WSDualHttpBinding协议WCF服务的问题
- Windows下关于Composer使用时出现的问题及解决办法
- 关于Qt使用QSqlQuery执行sql语句时出现out of memory的问题
- 关于jquery mobile使用<a href="#"></a>进行页面跳转返回上一页出现空白页问题的解决
- 关于图形化编程软件sikuli 初学者使用时可能容易出现的一些问题
- Windows下关于Composer使用时出现的问题及解决办法
- 关于shtml页面include问题解决方案因为utf-8的BOM头引起的出现一个空行