如何确定 IIS 的时区设置。似乎自从应用夏令时(+1 小时)以来,IIS 返回的时间就晚了 1 小时,因为 +1 被忽略了。
服务器上的时间本身是正确的,但当应用程序代码调用 getDateTime 时,它会返回错误的时间。有什么想法吗?
编辑
应用程序代码在 .net 中,此特定部分与 SQLMembershipProvider 相关。基本上,当用户登录时,上次登录日期时间会更新并存储在数据库中。这总是比实际时间晚 1 小时。两台服务器(应用程序服务器和托管 SQL Server 的服务器)上的 tome 设置都是正确的,并且它独立于客户端站点设置
编辑2
感谢您的回答,事实证明问题的根源与 IIS 无关
答案1
IIS 始终以 GMT 格式记录 - 您可以配置滚动时间。时间会随着您的服务器根据 DST 进行更改而更改。但日志是静态的
所选的日志文件格式是 W3C 扩展日志文件格式。扩展日志文件格式在 Phillip M. Hallam-Baker 和 Brian Behlendorf 编写的 W3C 工作草案 WD-logfile-960323 规范中定义。此文档将日期和时间文件定义为始终采用 GMT 格式。此行为是设计使然。
答案2
我认为这是由于 SQLMembershipProvider 使用日期时间的方式。基本上所有时间(lastLoginTime、lastUserActivity 等)都存储为 UTC - 这是为了避免服务器在不同时区运行时可能出现的复制问题。它类似于 UndertheFold 指出的 IIS 在日志中使用时间的方式 - 感谢您为我指明正确的方向
一些参考资料可以在这里找到专业 ASP.NET 2.0 安全性、成员资格和角色管理作者:Stefan Schackow
所以基本上这不是一个真正的 IIS 问题
答案3
这也许不能直接回答您的问题,但我们遇到了客户无法登录我们网站的问题。他们的 cookie 立即过期。事实证明,这与他们的夏令时设置以及未在 XP 中安装某些 DST 补丁有关。
让他们下载并安装此补丁解决了该问题。