2013-06-13 15 views
5

のWindows Azureの管理管理ポータル、私はインスタンスを監視しようとすると、私は次のエラーを取得するには:のWindows Azureの - 「設定ファイルが1つまたは複数の役割のための診断接続文字列が欠落している」

The configuration file is missing a diagnostic connection string for one or more roles. Monitoring can't be enabled for these roles.

私のサービスには2つの役割があります。

MyApp.Cacheは、監視グラフで正常に動作します。

MyApp.Websiteは、監視グラフを表示しません。 これはなぜ私がvalue="UseDevelopmentStorage=true"が問題ではないことではありません。次のように

私のサービスの構成は次のとおりです。

<Role name="MyApp.Website"> 
    <Instances count="2" /> 
    <ConfigurationSettings>  
     <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey" />  
    </ConfigurationSettings> 
    </Role> 
    <Role name="MyApp.Cache"> 
    <Instances count="2" /> 
    <ConfigurationSettings> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Caching.Loglevel" value="" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="" />  
     <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey" />  
    </ConfigurationSettings> 
</Role> 

私のサービス定義はこれです:診断を動作させるためには

<ServiceDefinition name="MyApp.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-05.1.7"> 
    <WebRole name="MyApp.Website" vmsize="ExtraSmall"> 
    <Sites> 
     <Site name="Web"> 
     <Bindings> 
      <Binding name="Endpoint1" endpointName="Endpoint1" /> 
     </Bindings> 
     </Site> 
    </Sites> 
    <Endpoints> 
     <InputEndpoint name="Endpoint1" protocol="http" port="80" /> 
    </Endpoints> 
    <Imports> 
     <Import moduleName="Diagnostics" /> 
    </Imports> 
    <LocalResources> 
     <LocalStorage name="DiagnosticStore" sizeInMB="4096" cleanOnRoleRecycle="false"/> 
    </LocalResources>  
    </WebRole> 
    <WorkerRole name="MyApp.Cache" vmsize="ExtraSmall"> 
    <Imports> 
     <Import moduleName="Diagnostics" /> 
     <Import moduleName="Caching" /> 
    </Imports> 
    <LocalResources> 
     <LocalStorage name="Microsoft.WindowsAzure.Plugins.Caching.FileStore" sizeInMB="4096" cleanOnRoleRecycle="false" /> 
    </LocalResources> 
    </WorkerRole> 
</ServiceDefinition> 
+0

あなたのCSDEFファイルはどのように見えますか? – Igorek

+0

@Igorek Igorek、私は私の質問を更新しました。 –

+0

Hmm ...どうやって展開していますか?公開中に診断接続文字列をストレージアカウントに更新する場合はチェックボックスをオンにしていますか? – Igorek

答えて

3

、あなたは.csdefに診断モジュールをインポートする必要があります.cscfgファイルに有効な接続文字列を指定します。

診断モジュールが正しく含まれていますが、.cscfgファイルに有効な接続文字列が指定されていません。 "AccountName"を実際のアカウント名で置き換え、 "AccountKey"を有効なアカウントキーで置き換える必要があります。そのためには、Azureストレージアカウントを作成し、その接続文字列をここにコピーする必要があります。

また、問題の一部ではありませんが、ソリューションを展開する際には "UseDevelopmentStorage = true"を使用しないでください。基本的にはローカルのStorage EmulatorをAzureストレージアカウントとして使用しますが、これはクラウドでは使用できません。ワーカーロールにも有効なストレージアカウント接続文字列を指定する必要があります。

+0

あなたの答えをありがとう。残念ながら、私がオートスケーラを実装するまでには、Azureはオートスケーラを管理ポータルに含めました。 –

関連する問題