2013-06-13 10 views
5

W Windows Azure Zarządzanie portalu, gdy staram się monitorować instancje, pojawia się następujący błąd:Windows Azure - „Plik konfiguracyjny brakuje diagnostyczny ciąg połączenia dla jednego lub więcej ról”

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

Mam 2 role w mojej usłudze.

MyApp.Cache działa poprawnie na wykresach monitorowania.

MyApp.Website nie wyświetla wykresów monitorowania. Dlatego nie uważam, że problemem jest value="UseDevelopmentStorage=true".

Moja konfiguracja usługi jest następująca:

<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> 

Moja Definicja usługi to:

<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

Jak wygląda twój plik CSDEF? – Igorek

+0

@Igorek Igorek, zaktualizowałem moje pytanie. –

+0

Hmm ... Jak się wdrażasz? czy zaznaczasz pole wyboru, aby zaktualizować ciąg połączenia diagnostycznego z kontem magazynu podczas publikowania? – Igorek

Odpowiedz

3

Aby pracować diagnostyka, należy zaimportować moduł diagnostyczny w .csdef i podaj poprawny ciąg połączenia w pliku .cscfg.

W twoim przypadku twój moduł diagnostyczny został poprawnie zainstalowany, ale nie podałeś prawidłowego ciągu połączenia w pliku .cscfg. Musisz zastąpić "AccountName" rzeczywistą nazwą konta i "AccountKey" prawidłowym kluczem konta. W tym celu należy utworzyć konto magazynu Azure i skopiować tutaj jego ciąg połączenia.

Ponadto, nawet jeśli nie jest to część twojego pytania, nie powinieneś używać "UseDevelopmentStorage = true" podczas wdrażania rozwiązania. Zasadniczo używa on lokalnego emulatora pamięci masowej jako konta pamięci masowej Azure, które nie jest dostępne w chmurze. Musisz również podać prawidłowy ciąg połączenia konta magazynu w roli roboczej.

+0

Dziękuję za odpowiedź. Niestety, do czasu implementacji autoskalera Azure umieścił autoskaler w swoim portalu zarządzania. –

Powiązane problemy