Обновите файл конфигурации службы Azure с помощью Powershell - PullRequest
2 голосов
/ 18 марта 2010

Я пытаюсь написать сценарий powershell, который обновляет каждое из значений DiagnosticsConnectionString и DataConnectionString, указанных ниже, но мне не удается найти каждый отдельный узел роли с помощью

$serviceconfig.ServiceConfiguration.SelectSingleNode("Role[@name='MyService_WorkerRole']")

, выполняющих echo $serviceconfig.ServiceConfiguration.Role спискиоба ролевых узла для меня, так что я знаю, что он работает до этого момента, но после этого у меня не будет большого успеха.

, где $ serviceConfig содержит приведенный ниже XML:

<?xml version="1.0"?>
<ServiceConfiguration serviceName="MyService"  xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
  <Role name="MyService_WorkerRole">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" value="really long string" />
      <Setting name="DataConnectionString" value="really long string 2" />
    </ConfigurationSettings>
  </Role>
  <Role name="MyService_WebRole">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" value="really long string 3" />
      <Setting name="DataConnectionString" value="really long string 4" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

1 Ответ

2 голосов
/ 19 марта 2010

Я бы пропустил XPath и просто отфильтровал с помощью PowerShell.

$serviceConfig.ServiceConfiguration.Role |
    ? { $_.name -eq 'MyService_WorkerRole' } |
    % { $_.ConfigurationSettings.Setting } |
    ? { $_.name -like 'Diag*' } |
    % { $_.value = 'sup' }

На этом этапе, если мы сделаем что-то подобное ...

$serviceConfig.ServiceConfiguration.Role[1].ConfigurationSettings.OuterXml

Мы получим это...

<ConfigurationSettings xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
  <Setting name="DiagnosticsConnectionString" value="sup" />
  <Setting name="DataConnectionString" value="really long string 2" />
</ConfigurationSettings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...