2014-11-20 17 views
17

Tôi có Trang web Azure. Vì lợi ích của câu hỏi này, phiên bản sản xuất của trang web chạy trên example.com và phiên bản thử nghiệm của trang web chạy trên sandbox.example.com.Thông tin chi tiết về ứng dụng trang web Azure - chuyển đổi cấu hình

Sự khác biệt duy nhất giữa hai là chúng có cấu hình khác nhau.

Hiện tại, chúng đang chạy dưới các trang web khác nhau và tôi triển khai cùng một trang web cho mỗi trang web thông qua git.

Tôi muốn tách dữ liệu Thông tin chi tiết về ứng dụng. Có một kỹ thuật hoặc quy trình mà bất kỳ ai sử dụng - ngoài việc chỉnh sửa tệp ApplicationInsights.config trong triển khai môi trường sandbox?

Hoặc sẽ sử dụng một khe cắm triển khai xử lý điều này theo một cách nào đó?

Trả lời

26

Có một bài đăng blog mới về chính xác ngày hôm nay: Application Insights Support for Multiple Environments, Stamps and App Versions.

Điểm đến của đo từ xa được xác định bằng công cụ khóa (iKey), được gửi cùng với mọi thông báo từ xa. Trong cổng thông tin ứng dụng Thông tin chi tiết về ứng dụng, các sự kiện và chỉ số tương tự có cùng số iKey được tổng hợp để cung cấp cho bạn biểu đồ thời lượng trung bình, sự kiện đếm, tổng số người dùng, v.v. IKey xuất hiện ở hai nơi trong dự án của bạn. Một là trong ApplicationInsights.config: <InstrumentationKey>94843456-2345-3456-4567-324562759284</InstrumentationKey>

Nếu ứng dụng của bạn có trang web, iKey cũng xuất hiện trong tập lệnh mỗi trang web. Thông thường, mã chỉ được mã hóa một lần trong trang cái như Views\Shared\_Layout.cshtml.

Để trực tiếp đo từ xa đến các tài nguyên ứng dụng khác nhau, chúng tôi có thể tạo một số tài nguyên với các iKey khác nhau. Sau đó, chúng tôi chỉ phải thay đổi các iKey trong ứng dụng tại mỗi chuyển đổi trong vòng đời của nó - cùng với các dữ liệu cấu hình khác như chuỗi kết nối, giấy chứng nhận và đăng ký.

Bài báo sau đó tiếp tục làm thế nào để làm điều này trong mã, confg, vv:

1) Thêm iKey như một tài sản trong Web.config:

2) Thay vì sử dụng iKey từ ApplicationInsights.config, chúng tôi sẽ đặt mã trong mã. Trong global.asax.cs.

Để tránh nhầm lẫn, hãy xóa nút <InstrumentationKey> khỏi ApplicationInsights.config.

3) Định cấu hình các trang web để chọn instrumentationKey: "@Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey". Đây là tập lệnh thường được tìm thấy trong View\Shared\_Layout.cshtml.

4) Đừng quên cập nhật Web.config của bạn với cấu hình iKey thích hợp trong quá trình triển khai. Bạn có thể nghĩ ra cách đặt nó một cách thích hợp như một phần của bản dựng của bạn, nhưng tôi sẽ để nó ở số bạn.

+0

Đây chính xác là những gì tôi cần . Tôi tò mò muốn biết nếu đây là một tính năng hiện có mà không được tài liệu (hoặc khó tìm) hoặc nếu nó là một cái gì đó mới? –

+1

Tôi nghĩ hầu hết các nội dung trong bài đăng trên blog là những thứ bạn có thể đã làm trong một thời gian, chưa được ghi lại ở bất kỳ đâu. ít nhất là bởi đọc của tôi –

2

Trong cổng Azure cho trang web, trên tab cấu hình có một phần được gọi là Cài đặt ứng dụng. Bạn có thể đặt các cài đặt cấu hình khác nhau tại đây. Khi xuất bản, azure sẽ đưa các thiết lập đó vào web.config.

Sau đó, chỉ cần sử dụng WebConfigurationManager.AppSettings như bình thường và nó sẽ kéo các giá trị được chèn vào.

+3

Có - nhưng cấu hình Thông tin chi tiết về ứng dụng không có trong 'web.config', mà là' ApplicationInsights.config'. –

+0

Xin lỗi, đã bỏ lỡ điểm đó. Có vẻ như bạn có thể cấu hình applicationinsights.config cho mỗi cấu hình xây dựng. Đây là một liên kết ... http://msdn.microsoft.com/en-us/library/dn550723.aspx – dascalos

2

Tìm thấy câu hỏi liên quan đến bán này: How to support multiple Azure subscriptions for a single application with application insights điều này là để sử dụng bởi dịch vụ đám mây và nó hoạt động!

Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = ConfigurationManager.AppSettings["appInsightsKey"]; 

Tôi đã làm điều này trong phương pháp registertypes thống nhất của mình, nó hoạt động ở đó.

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, để lại nhận xét bên dưới bài viết của họ - bạn luôn có thể nhận xét về bài viết của riêng bạn, và một khi bạn có đủ [uy tín] (http://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bài đăng bất kỳ] (http://stackoverflow.com/help/privileges/comment). – JTG

+0

@JTG đây có phải là câu trả lời hay hơn không? – Dennis

+0

Tôi hiểu rằng bạn chưa thể nhận xét và điều đó có thể gây phiền toái, nhưng điều đó không có nghĩa là phần câu trả lời trở thành một phần bình luận ngẫu hứng cho những người không có đủ đại diện. Rep khóa bình luận là cách tốt nhất để SO ngăn chặn thư rác. Đặt câu hỏi hay và/hoặc đăng câu trả lời hay và bạn sẽ dễ dàng có được 50 điểm đại diện cần thiết để đóng góp. – JTG

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