2013-06-13 21 views
5

Trong Windows Azure Quản lý Quản lý cổng thông tin, khi tôi cố gắng theo dõi các trường hợp, tôi nhận được lỗi sau:Windows Azure - "Các tập tin cấu hình là mất tích một chuỗi kết nối chẩn đoán cho một hoặc nhiều vai trò"

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

Tôi có 2 vai trò trong Dịch vụ của mình.

MyApp.Cache hoạt động ok trên biểu đồ giám sát.

MyApp.Website không hiển thị biểu đồ giám sát. Đây là lý do tại sao tôi không làm điều đó value="UseDevelopmentStorage=true" là vấn đề.

cấu hình dịch vụ của tôi là như sau:

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

Định nghĩa dịch vụ của tôi là thế này:

<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

Tệp CSDEF của bạn trông như thế nào? – Igorek

+0

@Igorek Igorek, tôi đã cập nhật câu hỏi của mình. –

+0

Hmm ... Bạn triển khai như thế nào? bạn có kiểm tra hộp kiểm để cập nhật chuỗi kết nối Chẩn đoán với tài khoản lưu trữ trong khi xuất bản không? – Igorek

Trả lời

3

Để làm cho chẩn đoán làm việc, bạn cần phải nhập khẩu các module chẩn đoán trong .csdef và cung cấp chuỗi kết nối hợp lệ trong tệp .cscfg.

Trong trường hợp của bạn, bạn đã bao gồm mô-đun Chẩn đoán chính xác, tuy nhiên bạn chưa cung cấp chuỗi kết nối hợp lệ trong tệp .cscfg. Bạn cần phải thay thế "Tên tài khoản" bằng tên tài khoản thực tế và "Khóa tài khoản" bằng khóa tài khoản hợp lệ. Để làm điều đó, bạn cần phải tạo một tài khoản lưu trữ Azure và sao chép chuỗi kết nối của nó ở đây.

Ngoài ra, mặc dù nó không phải là một phần của câu hỏi của bạn, bạn không nên sử dụng "UseDevelopmentStorage = true" trong khi triển khai giải pháp. Về cơ bản nó sử dụng bộ giả lập lưu trữ cục bộ của bạn làm tài khoản lưu trữ Azure của bạn, không có sẵn trong đám mây. Bạn cũng cần phải cung cấp chuỗi kết nối tài khoản lưu trữ hợp lệ trong vai trò công nhân.

+0

Cảm ơn câu trả lời của bạn. Thật không may, bởi thời gian tôi thực hiện các autoscaler, Azure bao gồm các autoscaler trong cổng thông tin quản lý của họ. –

Các vấn đề liên quan