Wednesday, January 12, 2011

IIS Time Zone and daylight saving changes

How can I determine Time Zone setting for IIS. It seems that ever since the daylight savings were applied (+1 hour) the time returned by IIS is 1 hour behind as the +1 was ignored.

The time on the server itself is correct, but when the application code calls getDateTime it would return the incorrect time. Any thoughts?

EDIT

The application code is in .net and this particular part is related to SQLMembershipProvider. Basically when a user is logged in the last login datetime is updated and stored in database. That is always 1 hour behind the actual time. The tome settings on both servers (the application server and the one hosting SQL Server are correct), and it is independent on the client site settings

EDIT 2

Thanks for the answers, it turns out the the source of the problem was not IIS related

  • This may not directly answer your question but we ran into issues with clients not being able to log into our website. Their cookie was expiring immediately. It turns out it was related to their daylight savings time settings and not having some DST patch installed in XP.

    Having them download and install this patch resolved the issue.

    Daylight Savings Time Patch

    kristof : Thanks Paul, the symptoms were actually independent of the settings on the client side. And in fact the source of the problem was not even IIS related neither
  • IIS always logs in GMT - you can configure the rollover time. The time changes because your servers change for DST. The log is static though

    The selected log file format is the W3C Extended Log File Format. The extended log file format is defined in the W3C Working Draft WD- logfile-960323 specification by Phillip M. Hallam-Baker and Brian Behlendorf. This document defines the Date and Time files to always be in GMT. This behavior is by design.

    http://support.microsoft.com/kb/271196

    kristof : +1 Thanks for pointing me in the right direction
  • I seems that it is due to the fact how the datetime is used by the SQLMembershipProvider. Basically all times (lastLoginTime, lastUserActivity etc. ) are stored as UTC - this is to avoid possible replication problems when servers are operating in different timezones. It is similar to the way IIS uses time in logs as pointed out by UndertheFold - Thanks for pointing me into the right direction

    Some reference can be found in Professional ASP.NET 2.0 security, membership, and role management By Stefan Schackow

    So basically that was not really a IIS issue

    From kristof

0 comments:

Post a Comment