시스템 다시 시작 후 (내일의 날짜와 토글 된 AM/PM 시간) My Server (VPS)는 DateTime보다 약 12 시간 이상 걸립니다. 문제는 서버에서 날짜와 시간을 수정하면 더 이상 내 ASP 응용 프로그램에 로그인 할 수 없다는 것입니다. 실제로 로그인 프로세스는 잘 진행되지만 즉시 로그 아웃됩니다. 세션 시작 시간이 내일 (잘못된 DateTime)이고 여전히 슬라이딩 만료 시간이 현재 서버 시간과 비교되어 로그 아웃하는 것으로 보입니다. 세션 시작 시간을 어떻게 다시 시작할 수 있습니까? 올바른 DateTime을 사용하기 위해 다시 시작하는 서비스 또는 구성은 무엇입니까?서버에서 asp.net 세션 시작 시간을 restrart하는 방법?
답변
다시 시작한 후에 변경해서는 안되며, 서비스 제공 업체와이 상황을 공유합니까?
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 귀하의 관심과 도움에 감사드립니다. 나는 나의 대답을 업데이트했다. 당신과 같은 누군가가 조언을한다면, 어떻게 그에게 신용을 줄 수 있습니까? – marathonman
방금 했었습니다. :) 코멘트에 조언을 할 필요가 없습니다. 다른 사람들이 유용하다고 생각하면 댓글을 upvote 할 수 있습니다. –
clari 일부 코드를 나타내지 않고 당신이 말하는 것에 대해,이 질문에 답하기 란 매우 어려울 것입니다. [좋은 질문이 있습니까?] (http://stackoverflow.com/help/how-to-ask) 및 도움말 센터의 관련 주제를 읽어보십시오. 감사. –
세션 시간 제한을 수동으로 사용하지 않습니다. 그냥 asp.net 회원 양식 인증을 사용합니다. 따라서 코드가 필요하지 않으며 제 질문이 분명하고 정확하다고 생각합니다. – user3569123