在2016年2月10日安装Windows更新后,azure角色无法在模拟器中启动(Full/Express).日志显示如下
[00005748:00006624, 2016/02/14, 12:03:24.391, FATAL] Role process exited with exit code of -2147024809
[00005748:00006624, 2016/02/14, 12:03:24.397, INFO ] Stopping role: deployment25(0).AzureCloudService2.WebRole1_IN_0. Notify: False Recycle: False StopTimeout: 30
[00005748:00006624, 2016/02/14, 12:03:24.398, IMPRT] State of deployment25(0).AzureCloudService2.WebRole1_IN_0 changed from RoleStateBusy to RoleStateStopping.
[00005748:00006624, 2016/02/14, 12:03:24.398, IMPRT] State of deployment25(0).AzureCloudService2.WebRole1_IN_0 changed from RoleStateStopping to RoleStateStopped.
[00005748:00006624, 2016/02/14, 12:03:24.398, ERROR] <- WapGetEnvironmentVariable=0x800700cb
[00005748:00006624, 2016/02/14, 12:03:24.398, WARN ] (Ignoring) Reading environment variable CleanupFirewallOnRoleRestart failed with HR: 800700cb
[00005748:00006624, 2016/02/14, 12:03:24.398, INFO ] The value of cleanupFirewallOnRoleRestart …
Run Code Online (Sandbox Code Playgroud) azure azure-worker-roles azure-web-roles azure-compute-emulator
我获得了一个包含4个辅助角色的Cloud Service部署,其中一个角色启用了自动扩展.一旦发生自动缩放,所有角色的所有实例都将进行回收.
理想情况下,我想停止回收角色,或者至少以受控方式终止所有其他角色的工作.
我发现,您可以对RoleEnvironment.Changing事件做出反应并取消它以请求正常关闭(即调用OnStop).但是,通过向Changing事件处理程序添加跟踪输出,我注意到Changing事件显然甚至没有被触发,因此取消也没有被注册.
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()
{ …
Run Code Online (Sandbox Code Playgroud) 我有一个Azure托管的Web应用程序,它与一些辅助角色的实例一起工作.目前,Web应用程序通过将消息放入Azure队列中以供工作人员接收,将工作传递给这些工作人员.工作人员通过将消息放入"反馈"队列来传递状态和进度消息.目前,为了通知我的浏览器客户端进度,我在浏览器中将基于ajax的定期轮询调用转换为MVC控制器方法,该方法依次读取Azure'反馈'队列并将这些消息作为json返回给浏览器.
显然,SignalR对于这种笨拙的轮询/排队方法看起来是一个非常有吸引力的替代方案,但是当我们讨论需要发送的多个工作者角色(而不是Web角色)时,我发现很少有关于如何执行此操作的指导个人或所有客户的身份.
该SignalR.WindowsAzureServiceBus 由克莱门斯vasters看起来极好,但留下一个有点高,干燥末即一个很好的例子,解决缺乏.
补充评论:从我的阅读到目前为止,似乎没有可能通过SignalR方法从工作者角色(而不是Web角色)到浏览器客户端的直接通信.工作人员似乎必须使用队列与Web角色进行通信.这反过来会强制轮询方法,即必须轮询来自工作者角色的消息的队列 - 这种轮询必须从它出现的浏览器中发起(从中驱动)(如何在Web角色中设置轮询循环?)
总之,即使使用 Clemens Vasters的SignalR.WindowsAzureServiceBus扩展方法,SignalR也无法处理从工作者角色到浏览器的直接通信.
任何来自专家的意见将不胜感激.
我有一个Windows服务,我需要迁移到Azure作为工作者角色.在我的Azure解决方案中,一切都很好.但是,当我上传所有内容时,只会启动Web角色.工作者角色实例在以下两种状态之间无法启动而无法启动.
由于实例无法启动,我怀疑我的问题出现在我的WorkerRole.cs代码中.您将在下面找到该代码.我还提供了服务代码,以防它与问题相关.我做错了什么?
这是我的WorkerRole.cs文件:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Threading;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Diagnostics;
using Microsoft.WindowsAzure.ServiceRuntime;
using Microsoft.WindowsAzure.StorageClient;
using System.ServiceProcess;
namespace SBMWorker
{
public class WorkerRole : RoleEntryPoint
{
public override void Run()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
//Thread.Sleep(Timeout.Infinite);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Service1.cs代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using Lesnikowski.Mail;
namespace SBMWorker
{
public partial …
Run Code Online (Sandbox Code Playgroud) 我有一个工作角色,在开发中完美运行但在部署时不起作用."不起作用"是相当模糊的,但这真的是我必须继续,因为我没有看到任何错误或任何事情(事件日志中无论如何 - 也许还有其他地方我可以看).我在我的代码中添加了一些跟踪语句,我看到第一个出现了,但没有其他的.
WorkerRole代码:
public class WorkerRole : RoleEntryPoint
{
#region Member variables
private IWindsorContainer _container;
private IJob[] _jobs;
#endregion
#region Methods
public override bool OnStart()
{
ConfigureDiagnostics();
Trace.WriteLine("WorkerRole.OnStart()");
try
{
Initialize();
Trace.WriteLine("Resolving jobs...");
_jobs = _container.ResolveAll<IJob>();
StartJobs();
return base.OnStart();
}
catch (Exception ex)
{
TraceUtil.TraceException(ex);
throw;
}
finally
{
Trace.WriteLine("WorkerRole.OnStart - Complete");
Trace.Flush();
}
}
/// <summary>
/// Sets up diagnostics.
/// </summary>
private void ConfigureDiagnostics()
{
DiagnosticMonitorConfiguration dmc =
DiagnosticMonitor.GetDefaultInitialConfiguration();
dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start(Constants.DiagnosticsConnectionString, dmc); …
Run Code Online (Sandbox Code Playgroud) 我已经设置了一个新的worker角色,并通过SlowCheetah为它设置了几个新的配置转换.当我使用所选的一个新配置构建项目时,我确实看到configs文件夹在\ bin文件夹下创建,如您所期望的那样(对于例如\ bin\Production).
当我使用其中一个新配置打包云服务进行部署时,我的Web项目会对其配置进行适当的转换但是我的工作者角色(这只是一个库)即使我在\ bin文件夹下面看到一个更新的\ bin \生产.
看来天蓝色的包装工具忽略了工作者角色库的配置集.如何从适当的配置中选择配置文件?
这是我的情景:
我正在使用节点azure sdk从Node.js发送Azure ServiceBus队列消息,如下所示:
var message = {
body: JSON.stringify({ foo: 'Bar' })
};
serviceBusService.sendQueueMessage('myQueue', message, function (error) {
if (!error) {
console.log('msessage sent');
}
});
Run Code Online (Sandbox Code Playgroud)
我有一个正在侦听队列的ac #work角色:
QueueClient Client = QueueClient.CreateFromConnectionString(connStr, QueueName);
Client.OnMessage((receivedMessage) =>
{
var body = receivedMessage.GetBody<string>();
});
Run Code Online (Sandbox Code Playgroud)
当该GetBody
方法执行时,我收到以下错误:
反序列化System.String类型的对象时出错.输入源格式不正确
我目前正在开发一个Azure项目,该项目在本地100%使用模拟器资源.我现在正在尝试部署一个辅助角色,但我遇到了一个我不确定如何排除故障的问题.
在Azure门户中部署辅助角色后,这两个实例不断循环"循环".
我可以尝试RDP进入这个角色,但是在连接关闭之前我只有大约一分钟的时间环顾四周,我假设由于回收.
经过一番搜索,似乎这不是一个超常见的问题.是否有一些微不足道的东西我可以忽视这可能导致这个问题?您将如何解决此问题?感谢您的时间 :)
azure azure-storage azure-storage-blobs azure-worker-roles azure-table-storage
我有azure worker角色:ImportDataWorker但是当我把它设置为启动项目时它不允许我运行项目:
在Visual Studio(安装了Azure SDK 2.2和2.3)中,我在尝试运行Azure辅助角色时遇到错误:
角色X使用的是不受支持的TargetFrameworkVersion v4.5.2
我应该使用最新的SDK吗?是否有提供兼容性的日期?