10

これを ServiceDefinition.csdef ファイルに追加しようとしました:

<WorkerRole ...><Runtime><Environment>
    <Variable name="AZURE_STORAGE_ACCOUNT">
      <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='AZURE_STORAGE_ACCOUNT']/@value" />
    </Variable>
</Environment></Runtime></WorkerRole>

そして、ServiceConfiguration.Cloud.cscfg ファイルで構成設定を設定します。

<Role name="WorkerRole">
  <ConfigurationSettings>
    <Setting name="AZURE_STORAGE_ACCOUNT" value="<secret stuff>" />
  </ConfigurationSettings>
</Role>

しかし、実行すると次のエラーが発生しましたcspack

CloudServices091 : The '/RoleEnvironment/CurrentInstance/Configur
ationSettings/ConfigurationSetting[@name='AZURE_STORAGE_ACCOUNT']/@value' is an
invalid xpath expression.
4

4 に答える 4

8

その設定の宣言がありませんか?.csdefのような適切な要素が見つかりません<ConfigurationSettings><Setting name="AZURE_STORAGE_ACCOUNT"/></ConfigurationSettings>。あなたはあなたの中にそれらのうちの1つが必要.csdefです.cscfg.

Visual Studio を使用している場合、そのプロパティ ビューを使用すると、両方のファイルが編集されます。(役割をダブルクリックしてからクリックして、構成設定に移動し、新しいものを追加します。)

于 2012-05-03T16:32:48.370 に答える
0

.cscfg と .csdef の両方に設定を含めるなど、ブログで言及されているさまざまなオプションを試しました。しかし、うまくいかないようです。また、次のような他の Xpath クエリ

      <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/@id"/>

正しく動作します。

最後に、使用されている変数名が異なることがわかりました。

私が持っていたcscfgで:

<Setting name="WFFEPeriodicRestartTime" value="168:00:00" />

私が持っていたcsdefで:

  <ConfigurationSettings>
      <Setting name="PeriodicRestartTime" />
   </ConfigurationSettings>

…………

 <Variable name="PeriodicRestartTime">
            <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='WFFEPeriodicRestartTime']/@value" />
  </Variable>

csdef を に変更:

<ConfigurationSettings>
      <Setting name="WFFEPeriodicRestartTime" />
   </ConfigurationSettings>

…………

 <Variable name="WFFEPeriodicRestartTime">
            <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='WFFEPeriodicRestartTime']/@value" />
          </Variable>

現在は正しく動作しているようです

于 2013-11-12T10:53:02.363 に答える