Tôi đã triển khai Cloud Service với 4 vai trò công nhân, một trong số đó đã bật tự động mở rộng quy mô. Ngay sau khi tự động mở rộng quy mô xảy ra, tất cả các trường hợp của tất cả các vai trò được tái chế.Các trường hợp vai trò của Dịch vụ đám mây Azure - tự động mở rộng - Thay đổi sự kiện không kích hoạt
Lý tưởng nhất, tôi muốn dừng vai trò tái chế hoặc ít nhất là chấm dứt công việc của tất cả các vai trò khác theo cách được kiểm soát.
Tôi phát hiện ra rằng bạn có thể react to the RoleEnvironment.Changing event và hủy để yêu cầu tắt máy duyên dáng (tức là thực hiện OnStop). Tuy nhiên, bằng cách thêm đầu ra truy tìm vào trình xử lý sự kiện Thay đổi, tôi nhận thấy rằng sự kiện Thay đổi rõ ràng là thậm chí không bị sa thải, do đó việc hủy bỏ cũng không được đăng ký.
private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
{
// This tracing output does not show up in the logs table.
Trace.TraceInformation("RoleEnvironmentChanging event fired.");
if ((e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange)))
{
// This one neither.
Trace.TraceInformation("One of the changes is a RoleEnvironmentConfigurationSettingChange. Cancelling..");
e.Cancel = true;
}
if ((e.Changes.Any(change => change is RoleEnvironmentTopologyChange)))
{
// This one neither.
Trace.TraceInformation("One of the changes is a RoleEnvironmentTopologyChange. Cancelling.");
e.Cancel = true;
}
}
public override bool OnStart()
{
// Hook up to the changing event to prevent roles from unnecessarily restarting.
RoleEnvironment.Changing += RoleEnvironmentChanging;
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;
bool result = base.OnStart();
return result;
}
Ngoài ra adding an internal endpoint cho mỗi vai trò không mang lại thay đổi. Ở đây cấu hình từ .csdef:
<WorkerRole name="MyRole" vmsize="Medium">
[...ConfigurationSettings...]
<Endpoints>
<InternalEndpoint name="Endpoint1" protocol="http" />
</Endpoints>
</WorkerRole>
Đồng thời thay đổi giao thức thành "bất kỳ" không thành công.
Làm thế nào tôi có thể dừng các trường hợp vai trò của mình sau khi tái chế?
EDIT:
» đang bao gồm snippets
» lỗi chính tả cố định
Cảm ơn câu trả lời. Nhưng chỉ cần sao chép-dán một trang web mà tôi thậm chí bao gồm trong câu hỏi của tôi và nói rằng điều này không làm việc, không phải là rất hữu ích cho tôi, xin lỗi! Bất kỳ ý tưởng khác tại sao điều này không làm việc cho tôi? –