【问题标题】:How to restrart asp.net session start time on server?如何在服务器上重新启动 asp.net 会话开始时间?
【发布时间】:2014-06-21 12:08:54
【问题描述】:

在系统重新启动后,我的服务器 (VPS) 需要的 DateTime 比现在的 DateTime 多 12 小时。(明天的日期和切换的 AM/PM 时间)。 问题是当我更正服务器上的日期和时间时,我无法再登录到我的 asp 应用程序了!事实上,登录过程很顺利,但它会立即注销。似乎会话开始时间仍然是明天(错误的日期时间),并且滑动到期时间总是与当前服务器时间比较并导致注销。 如何重新启动会话开始时间?哪个服务或配置将重新启动它以获取正确的 DateTime?

【问题讨论】:

  • 如果不显示一些代码来澄清您在说什么,那么回答这个问题将非常困难。请阅读帮助中心中的How do I ask a good question? 和相关主题。谢谢。
  • 我不手动处理会话超时。但是我只是使用 asp.net 成员身份验证。所以我认为不需要代码,我的问题非常清晰准确。

标签: asp.net datetime authentication iis-7 session-timeout


【解决方案1】:

重启后应该不会改变,请问您是否将这种情况与您的服务提供商分享?

最好使用 UTC 时间。

Dim timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central America Standard Time")
Dim utcNow As Date = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timeZone)

当您更改服务器时间时,它不会影响您的会话。您必须删除或更新您的会话。 如果你的问题只是会话

Session.Clear()
Session.Abandon()
Session.RemoveAll()

重启应用程序也会做同样的事情。 您可以通过这些方式重新启动您的应用程序;

1

restart IIS

2

File.SetLastWriteTime(HttpContext.Current.Request.MapPath("~\Web.config"), Date.Now)

3

rename web.config file to something(like 0web.config) and after that rename it again to web.config

4

create app_offline.htm on your root folder. it will close your app. when you want go online again rename it something else like 0app_offline.htm

【讨论】:

  • 如果您只是减去基本偏移量,则不会考虑使用夏令时的时区。请改用TimeZoneInfo.ConvertTimeFromUtc
  • @MattJohnson 感谢您的关注和帮助。我更新了我的答案。在 SO,如果像你这样的人给建议,我怎么给他一个信用
  • 你刚刚做到了。 :) 在 cmets 中的建议不需要积分。如果您认为其他人会觉得评论有用,您可以点赞。
  • IIS 重启没有帮助。但重命名“web.config”或“app_offline.htm”似乎可行。我认为重命名(或覆盖)bin 文件也可以。但是现在我解决了时间变化的问题。如果我停止 VMWare Tools 服务并将其设置为手动,然后使用更正的 DateTime 重新启动服务器,Elastix 将强制 VPS 使用正确的时间。谢谢大家!
猜你喜欢
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 2015-08-19
相关资源
最近更新 更多