Gateway Timer Script and httpGet Problem

I received the following error (IOError: Connection timed out: connect) when trying to execute the httpGet command from within the Gateway Event Scripts. As noted in other threads the scripts works fine from a button. I understand that the client side execution is different from the server side execution. Therefore, I ran a client instance (button test) on the gateway server machine and it works as well as verifying the URL is visible through Internet Explorer and disabled firewalls, so I do not believe there is a connectivity problem fronm the gateway server machine. I have read that it may be a permissions problem, but did not know what to change in Windows 7 Ultimate to have the Ignition Service overcome these issues at the Local System Level. Are there any recommendations for this problem?

Environment
Windows 7 Ultimate
Ignition 7.5.0 (b1079) | 64-bit

Ignition\logs\wrapper

INFO | jvm 1 | 2012/10/03 09:12:27 | ERROR [TimerScriptTask ] [09:12:27,016]: Error executing global timer script: Plot (1000) [Delay, Dedicated]. Repeat errors of this type will be logged as ‘debug’ messages.
INFO | jvm 1 | 2012/10/03 09:12:27 | Traceback (most recent call last):
INFO | jvm 1 | 2012/10/03 09:12:27 | File “<TimerScript:demo/Plot (1000) [Delay, Dedicated]>”, line 18, in
INFO | jvm 1 | 2012/10/03 09:12:27 | IOError: Connection timed out: connect
INFO | jvm 1 | 2012/10/03 09:12:27 |
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyException.fillInStackTrace(PyException.java:70)
INFO | jvm 1 | 2012/10/03 09:12:27 | at java.lang.Throwable.(Throwable.java:181)
INFO | jvm 1 | 2012/10/03 09:12:27 | at java.lang.Exception.(Unknown Source)
INFO | jvm 1 | 2012/10/03 09:12:27 | at java.lang.RuntimeException.(Unknown Source)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyException.(PyException.java:46)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyException.(PyException.java:43)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyException.(PyException.java:61)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.Py.fromIOException(Py.java:201)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.Py.IOError(Py.java:171)
INFO | jvm 1 | 2012/10/03 09:12:27 | at com.inductiveautomation.ignition.common.script.builtin.AbstractNetUtilities.httpGet(AbstractNetUtilities.java:157)
INFO | jvm 1 | 2012/10/03 09:12:27 | at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
INFO | jvm 1 | 2012/10/03 09:12:27 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
INFO | jvm 1 | 2012/10/03 09:12:27 | at java.lang.reflect.Method.invoke(Unknown Source)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyReflectedFunction.call(PyReflectedFunction.java:186)
INFO | jvm 1 | 2012/10/03 09:12:27 | at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.call(ScriptManager.java:455)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyObject.call(PyObject.java:387)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyObject.call(PyObject.java:391)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.pycode._pyx2.f$0(<TimerScript:demo/Plot (1000) [Delay, Dedicated]>:52)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.pycode._pyx2.call_function(<TimerScript:demo/Plot (1000) [Delay, Dedicated]>)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyTableCode.call(PyTableCode.java:165)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.PyCode.call(PyCode.java:18)
INFO | jvm 1 | 2012/10/03 09:12:27 | at org.python.core.Py.runCode(Py.java:1261)
INFO | jvm 1 | 2012/10/03 09:12:27 | at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:539)
INFO | jvm 1 | 2012/10/03 09:12:27 | at com.inductiveautomation.ignition.common.script.TimerScriptTask.run(TimerScriptTask.java:93)
INFO | jvm 1 | 2012/10/03 09:12:27 | at java.util.TimerThread.mainLoop(Unknown Source)
INFO | jvm 1 | 2012/10/03 09:12:27 | at java.util.TimerThread.run(Unknown Source)

It means it couldn’t connect on the server. Can you run that code in the designer on the server?

It is using the permissions from the Ignition service. The service is set to logon using the local system account. It may work by changing it to a different logon.

It does work in the designer, I initiated it from a button (in preview mode). Would that be the way to test what you asked?

I attempted to set the ignition to logon via a different admin account with no success either (See image). Was that what was recommended?

Yes, I wanted you to test it from a button in the designer. If it works there that means it has the right permissions to access the webpage. If it doesn’t work from a gateway side script, it has something to do with permissions from the service. There is one thing we can try, running Ignition as an application instead of a service. Do the following:

  1. Stop the Ignition service
  2. Right click on the Ignition service and select Properties. Copy the path to the executable and run it in command prompt on the server (as administrator privileges).

Try the gateway side script to see if it works.

I attempted the run from the command line via
C:\PROGRA~1\INDUCT~1\Ignition\IgnitionGateway.exe -s C:\PROGRA~1\INDUCT~1\Ignition\data\ignition.conf
And was unable to run as a service (see image).

After I removed the -s switch I was able to run ignition from the shell but the gateway script test still recieved the same unsuccessful result (IOError: Connection timed out: connect).

I may have figured it out, looks like a proxy issue… I placed the following two lines in ignition.conf and am getting expected behavior. I will have to perform additional steps to verify. Thanks for the support!

wrapper.java.additional.8=-Dhttp.proxyHost=xx.xx.xx.xx
wrapper.java.additional.9=-Dhttp.proxyPort=80