Windows Service Настройка учетной записи пользователя - PullRequest
4 голосов
/ 13 августа 2010

Я хочу настроить учетную запись пользователя для службы Windows еще до установки. Я делаю это, добавляя код в установщик проекта.

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.User; this.serviceProcessInstaller1.Password = ConfigurationSettings.AppSettings ["пароль"]; this.serviceProcessInstaller1.Username = ConfigurationSettings.AppSettings ["username"];

По-прежнему запрашиваются имя пользователя и пароль. Похоже, что файл конфигурации не готовится к моменту завершения установки.

Как я могу вытащить имя пользователя и пароль из файла конфигурации вместо жесткого его кодирования?

1 Ответ

2 голосов
/ 13 августа 2010

Ну, я не могу сказать, почему значения AppSettings не читаются традиционным способом во время работы установщика.Я попробовал это сам и столкнулся с той же проблемой, что и вы.Однако мне удалось обойти эту проблему, загрузив файл конфигурации в виде обычного XML-файла и прочитав его таким образом.Попробуйте это:

XmlDocument doc = new XmlDocument();
doc.Load(Assembly.GetExecutingAssembly().Location + ".config");

XmlElement appSettings = (XmlElement)doc.DocumentElement.GetElementsByTagName("appSettings")[0];

string username = null;
string password = null;

foreach (XmlElement setting in appSettings.GetElementsByTagName("add"))
{
    string key = setting.GetAttribute("key");
    if (key == "username") username = setting.GetAttribute("value");
    if (key == "password") password = setting.GetAttribute("value");
}

serviceProcessInstaller1.Account = ServiceAccount.User;
serviceProcessInstaller1.Username = username;
serviceProcessInstaller1.Password = password;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...