2012-01-03 31 views
8

Tôi cần nhận tất cả các cài đặt cấu hình (vai trò hiện tại hoặc tất cả các vai trò không quan trọng) từ tệp Azure cscfg. Tôi muốn làm điều này bởi vì tôi không muốn nhận tất cả các giá trị từng cái một thông qua phương thức RoleEnvironment.GetConfigurationSettingValue (key).Làm cách nào để nhận tất cả các cài đặt cấu hình từ tệp Azure Config?

Có cách nào để thực hiện việc này không?

Kính trọng

+0

Bạn muốn làm điều này cho ứng dụng hiện đang chạy? –

Trả lời

2

Câu trả lời ngắn gọn là 'không' RoleEnvironment không hỗ trợ nhận tất cả các giá trị cài đặt cấu hình.

Câu trả lời dài hơn một chút là việc cài đặt cấu hình từ môi trường vai trò trong quá trình triển khai hiện tại được thực hiện thông qua cuộc gọi đến mã gốc. Việc tách ứng dụng Windows Azure khỏi Cấu hình Windows Azure và khả năng hoán đổi cài đặt trên một ứng dụng đang chạy là gốc của phần mềm này. Điều này được thực hiện bên trong msshrtmi.dll (có nghĩa là một cái gì đó giống như Microsoft Shared Runtime Managed Interop). Đây là tài liệu tham khảo duy nhất Microsoft.WindowsAzure.ServiceRuntime.dll nằm ngoài các tham chiếu chuẩn tới .NET.

Đây là lời gọi phương thức để mã gốc (Tôi đã không đi xa hơn thế):

[MethodImpl (MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native), SuppressUnmanagedCodeSecurity, DllImport ("", EntryPoint =" ", CallingConvention = CallingConvention.StdCall, SetLastError = true)] nội bộ tĩnh extern không an toàn int modopt (IsLong) modopt (CallConvStdcall) RdGetApplicationConfigurationSetting (ushort modopt (IsConst) , ushort *);

1

Nó có vẻ giống như một cách hơi tròn về cách thực hiện nó, nhưng nếu bạn muốn nhận cấu hình cho tất cả các vai trò trong triển khai, bạn có thể sử dụng management api.

0

Kudu có API cho việc này.

Bạn có thể Kudu như thông qua dịch vụ App> Chi tiết Nâng cao> Go

https://{app-service-name}.scm.azurewebsites.net/ hoặc https://{app-service-name}-{slot-name}.scm.azurewebsites.net/

Các Url cho các cài đặt API là:

https://{app-service-name}.azurewebsites.net/api/settings hoặc https://{app-service-name}-{slot-name}.scm.azurewebsites.net/

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