Я создаю службу Windows, которая, как предполагается, ищет данные в определенной таблице, а затем обрабатывает запись на основе состояния.Передача параметров службе Windows во время установки
Я хочу передать учетные данные БД во время установки службы с помощью installutill в качестве параметров и сохранить их в реестре. Я попытался сделать это, используя код ниже, но я продолжаю получать ошибку в событии «OnBeforeInstall».
Я считаю, что либо неправильно передаю параметры, либо пишу код в неправильном случае. Нужна ваша помощь, чтобы понять, что я делаю неправильно.
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
_eventLog.WriteEntry("OnBeforeInstall Started");
try
{
RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\RyteRMS");
if (key != null)
{
_eventLog.WriteEntry("Write data to registry key");
key.SetValue("DBTYPE", this.Context.Parameters["dbtype"].ToString()); // This throws error, I am assuming as the above event entry is visible.
key.SetValue("DATASOURCE", this.Context.Parameters["datasource"].ToString());
key.SetValue("USERID", this.Context.Parameters["userid"].ToString());
key.SetValue("PASSWORD", this.Context.Parameters["password"].ToString());
key.SetValue("DBNAME", this.Context.Parameters["dbname"].ToString());
key.Close();
}
}
catch (Exception ex)
{
_eventLog.WriteEntry(ex.Message);
}
_eventLog.WriteEntry("OnBeforeInstall Finished");
}
Я пишу это в командной строке: InstallUtil RMSBGService.exe/DbType = SQLServer/DataSource = hitin-л/имя_бд = эфф/Идентификатор_пользователя = админ/пароль = passw0rd
Ошибка: «Ссылка на объект не установлена в экземпляр объекта».
P.S. Я не знаю, как отлаживать Win Service, поэтому я использую журнал событий для записи всех вещей.