My solution to this is as follows:

1. Update SysConfig via the web UI,  hit Update.

2. In a separate broswer window/tab, call the following script:

reload-perlex.pl (in the same folder as index.pl)

# Begin script
# Reload the PerlEx interpreter under IIS so that configuration module(s)
# are updated.

use strict;
use warnings;

PerlEx::Reload();

# End script

3. Refresh SysConfig page.  The config modules will have been reloaded and your updates will be visible.


Very clunky, but simpler than restarting app pools or iisreset.exe when I'm not logged into the server.  See excerpt below from the PerlEx log:

*** 'C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl' log message at: 2010/08/14 21:11:34
PerlEx: Executing script: C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl
Precompiler: Execute called for file [C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl]
Precompiler: Checking for existence of C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl in Cache
Precompiler: Loading [C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl] into [PerlEx::Precompiler::c_::temp::otrs::otrs2d3_0_0::bin::cgi2dbin::reload2dperlex_pl]
Precompiler: ParseShebangLine called
Precompiler: Parsed shebang switch w
Precompiler: Check for Embed parse of C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl
Precompiler: Checking .aspl
Precompiler: Precompiling [C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl]
Precompiler: Evaluating [PerlEx::Precompiler::c_::temp::otrs::otrs2d3_0_0::bin::cgi2dbin::reload2dperlex_pl]
Precompiler: Executing
    Package:[PerlEx::Precompiler::c_::temp::otrs::otrs2d3_0_0::bin::cgi2dbin::reload2dperlex_pl]
    Filename:[C:\Temp\OTRS\otrs-3.0.0\bin\cgi-bin\reload-perlex.pl]
    Params:[]
Precompiler: Precompiler done and everything is ok
PerlEx: Execute returned: 0

*** Trace message at: 2010/08/14 21:11:34
Precompiler: END block called
PerlEx: Interpreter unloaded




Hugh