Three Simple Rules for Not Going Insane When Dealing With Time:
First: You're running Unix (and presumably NTP): Make sure you have set your system's BIOS/Hardware clock to UTC.
The absolute last thing you need is your hardware (BIOS) clock fighting with Unix over whose timezone is right and when daylight saving time begins/ends. Setting your hardware clock to UTC makes life much easier.
Second: When you change the system-wide time zone you sometimes need to log out and log back in again for the system to understand what happened. Generally I suggest rebooting - this ensures every part of the OS has been kicked in the head and understands what has happened.
You don't want cron still running in US/Eastern time when you've changed the machine's timezone to Hawaii.
Third: If you user account still has a messed-up idea of the time zone something is probably setting the TZ
environment variable -- double-check your .profile
and shell rc files.
Unix doesn't assume that every user on the system is in the local time zone, so it lets you override on a per-user (or per-shell) level. This is very useful if your system is running on (e.g.) US/Eastern time and you have users logging in from Japan - People like the time their system reports to match the clock on their wall :)
The clue to solving this is in the error message (IIS is really good at explaining 500.19 errors which is nice):
This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
What this is saying is that you can't specify a configuration section change (in this case <handlers accessPolicy="Read, Execute, Script">
in your web.config
file.
You can resolve this by unlocking this section at the site level using the following command:
appcmd unlock config "[SITENAME]" -section:handlers /commit:apphost
Where [SITENAME]
is the name of the site where your TomCat bits are installed.
You can also do this in IIS7's Management Console:
Navigate to the site and launch the Configuration Editor applet/feature:
In the Configuration Editor select system.webServer/handlers
from the Section list box and ApplicationHost.config <location path="[SITENAME]" />
from the From: listbox then click Unlock Section:
The /commit:apphost
switch in the command line version and the ApplicationHost.config <location path=...
location in the GUI version ensures that this section is unlocked in IIS's applicationHost.config
file rather than in your web.config
. This means it's less likely to be undone by a slip of the keyboard when someone edits the web.config
file`.
Under the bonnet what this adds is a <location>
element that looks like:
<location path="[SITENAME]" overrideMode="Allow">
<system.webServer>
<handlers />
</system.webServer>
</location>
However, before doing that I'd try removing the offending line in your web.config
file first, but I suspect that isapi_redirect.dll
needs to be executable.
Best Answer
The
JVM
might have the wrong timezone set as a default.Add a
JVM
option-Duser.timezone=US/Pacific
(use theJAVA_OPTS
property)(also do a
ps | grep java
to look at theJVM
command line and see if this option is already set forUTC
, perhaps by a configuration setting or environment variable).