This project has moved. For the latest updates, please go here.

OpenPDC Service won't start - ArgumentNullException

Sep 10, 2014 at 7:16 PM
I've had openPDC installed and working for years now. However, just recently when I go to start the openPDC service, it tries to start and then immediately stops. I haven't made any configuration changes so I'm a bit puzzled why this is happening out of the blue.

EventViewer gives the following stack trace:

Service cannot be started. System.ArgumentNullException: Value cannot be null.
Parameter name: value
at TVA.Scheduling.Schedule.set_Rule(String value)
at TVA.Scheduling.Schedule..ctor(String name, String rule, String description)
at TVA.Scheduling.ScheduleManager.LoadSettings()
at TVA.Scheduling.ScheduleManager.Initialize()
at TVA.Scheduling.ScheduleManager.Start()
at TVA.ServiceProcess.ServiceHelper.OnStart(String[] args)
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

There is nothing written to the openPDC ErrorLog file.

Any ideas?

Sep 10, 2014 at 8:21 PM
Hello Blake,

In openPDC.exe.config, there should be a section called "processScheduler" with a couple settings defined there. It should something look like this.
      <add name="HealthMonitor" value="* * * * *" description="Any Minute, Any Hour, Any Day, Any Month, Any DayOfWeek"
        encrypted="false" />
      <add name="StatusExport" value="*/30 * * * *" description="Every 30 Minute, Any Hour, Any Day, Any Month, Any DayOfWeek"
        encrypted="false" />
That error can occur when the "value" of the settings in that section is empty or nonexistant. If you have a backup of that file, my recommendation would be to restore your backup in case the file was corrupted. If you don't have a backup, try manually editing the section to match what I posted above.

Sep 11, 2014 at 3:21 PM
Hi Blake,

Give then nature of your error, you are likely using a very old version of the openPDC, have considered upgrading to a newer version?

Sep 12, 2014 at 6:48 PM
Stephen / Ritchie,

Thanks so much. I was indeed able to fix the problem by using a config file backup that had correct values in the processScheduler portion you highlighted. I will certainly look into upgrading to a newer version of openPDC soon.

Oct 1, 2014 at 9:20 AM
Edited Oct 1, 2014 at 9:20 AM
Hi All,

I have the same problem with starting the service, except that I have following error in the Eventviewer :

Service cannot be started. System.InvalidOperationException: Cannot load Counter Name data because an invalid index '' was read from the registry. at System.Diagnostics.PerformanceCounterLib.GetStringTable(Boolean isHelp) at System.Diagnostics.PerformanceCounterLib.get_NameTable() at System.Diagnostics.PerformanceCounterLib.get_CategoryTable() at System.Diagnostics.PerformanceCounterLib.CategoryExists(String machine, String category) at System.Diagnostics.PerformanceCounterCategory.Exists(String categoryName, String machineName) at GSF.Diagnostics.PerformanceMonitor..ctor(String processName, Double samplingInterval, Boolean addDefaultCounters) at GSF.ServiceProcess.ServiceHelper.OnStart(String[] args) at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

and under .NET
Application: openPDC.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.NullReferenceException Stack: at GSF.TimeSeries.ServiceHostBase.LogException(System.Exception) at GSF.TimeSeries.ServiceHostBase.DisplayStatusMessage(System.String, GSF.UpdateType) at GSF.TimeSeries.Adapters.IaonSession.OnStatusMessage(System.Object, System.String, GSF.UpdateType) at GSF.TimeSeries.Adapters.IaonSession.DisposedHandler(System.Object, System.EventArgs) at GSF.TimeSeries.Adapters.AdapterCollectionBase1[[System.__Canon, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Dispose(Boolean) at GSF.TimeSeries.Adapters.AdapterCollectionBase1[[System.__Canon, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Finalize()

I have win 8 and .NET ver 4.5.2

Any idea? I reinstalled app many times already.

Thank you in advance!

Oct 1, 2014 at 1:14 PM
Hi Matija,

Please see the answer to this query. I believe the solution here should be the same.
Click Start, type cmd right click cmd.exe, and select Run as administrator.
At the prompt, type lodctr /r and press ENTER. This will repair the pointers (those are stored in the registry).
Oct 1, 2014 at 3:51 PM
Hi Stephen,

Works like a charm!

Thank you!