Открытие компьютера / базы Web.Config (64bit) через код - PullRequest
2 голосов
/ 15 ноября 2011

Я хочу написать код для открытия и редактирования базовых файлов web.config для компьютера (как часть установщика для HttpModule).

файлы, которые я хочу редактировать, обычно расположены по адресу:

  • C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ web.config
  • C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ CONFIG \ web.config

Если я использую следующий код, я могу открыть 32-битную версию файла:

Configuration configuration = WebConfigurationManager.OpenWebConfiguration(null);

Как открыть 64-битную версию файла? (независимо от того, где он был установлен, даже если он установлен в другом месте на машине).

UPDATE: Рассматриваемый код предназначен для установщика, который добавляет ссылку на сборку GAC, HttpModule и HttpHandler в базовый web.config компьютера. Поскольку модуль предназначен для использования на «целом сервере», наилучшим местом для этого является базовый web.config. Я повторяю: это не для создания вируса, как это предлагается в комментариях. Тот факт, что вам нужно работать с повышенными правами, чтобы касаться этих файлов, должен помочь сделать это предположение ложным.

1 Ответ

2 голосов
/ 15 ноября 2011
XmlTextReader reader = new XmlTextReader(FILE_NAME);
XmlDocument doc = new XmlDocument(); 
doc.Load(reader);
reader.Close();

//Select the cd node with the matching title
XmlNode oldCd;
XmlElement root = doc.DocumentElement;
oldCd = root.SelectSingleNode("/catalog/cd[title='" + oldTitle + "']");

XmlElement newCd = doc.CreateElement("cd");
newCd.SetAttribute("country",country.Text);

newCd.InnerXml = "<title>" + this.comboBox1.Text + "</title>" + 
        "<artist>" + artist.Text + "</artist>" +
        "<price>" + price.Text + "</price>";

root.ReplaceChild(newCd, oldCd);

//save the output to a file
doc.Save(FILE_NAME);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...