我在将我的服务部署到云中时遇到了一些困难。更准确地说,使用NServiceBus与Azure。我已经重复了我的步骤3次(创建了相同的项目3次)和相同的结果,所以我真的希望有人能指出我在正确的方向。
更新-> 24/02/2014
将post中提到的程序集降级到5.1.3版本,现在部署工作正常,并创建队列。也许在最新版本中有什么东西会导致部署失败。
首先,我使用Portal创建了我的先决条件:
以上3项都是使用Quick创建的。
回到Visual中,创建:
通过nuget引用下列程序集:
添加了一个名为邮件的新程序集,该程序集将包含要发布的命令和事件。
将云服务项目(AzureTest)中的设置更改为:
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"/>我的EndpointConfig看起来像:
public class EndpointConfig : IConfigureThisEndpoint, AsA_Worker
{
public void Customize(BusConfiguration configuration)
{
// Nothing too complicated for now, just anything where the namespace contains commands or events
configuration.Conventions().DefiningCommandsAs(x => x.AssemblyQualifiedName != null && x.AssemblyQualifiedName.Contains(".Commands."));
configuration.Conventions().DefiningEventsAs(x => x.AssemblyQualifiedName != null && x.AssemblyQualifiedName.Contains(".Events."));
configuration.UseTransport<AzureServiceBusTransport>();
configuration.UsePersistence<AzureStoragePersistence>();
// Docs don't state to do this however logs show this is required
configuration.DisableFeature<TimeoutManager>();
configuration.DisableFeature<SecondLevelRetries>();
configuration.DisableFeature<Sagas>();
}
}WorkerRole只是尝试启动和停止NServiceBusRole:
public class WorkerRole : RoleEntryPoint
{
private NServiceBusRoleEntrypoint nsb = new NServiceBusRoleEntrypoint();
public override bool OnStart()
{
Trace.TraceInformation("Discount has been started");
nsb.Start();
return base.OnStart();
}
public override void OnStop()
{
Trace.TraceInformation("Discount has stopped");
nsb.Stop();
base.OnStop();
}
}ServiceConfiguration.Cloudcscfg包含:
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=discount;AccountKey=[my key]" />
</ConfigurationSettings>NSB的配置部分:
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<TransportConfig MaximumConcurrencyLevel="5" MaxRetries="2" MaximumMessageThroughputPerSecond="0" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Assembly="Messages" Type="Messages.Commands.TestCommand" Endpoint="Discount" />
</MessageEndpointMappings>
</UnicastBusConfig>
<connectionStrings>
<add name="NServiceBus/Transport" connectionString="Endpoint=sb://discountbus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=[my key]" />
</connectionStrings>当我试图通过右键单击云服务项目进行部署并发布时,我会得到以下反馈:
09:34:29 -应用诊断学扩展。 09:34:50 -为AzureTest - 24/02/2015准备部署09:34:20与订阅ID 'e3dbff72-f1c1-43c8-b052-3404ea5c168e‘使用服务管理URL’https://management.core.windows.net/‘. 09:34:50 -连接. 09:34:50 -核实存储账户的折扣. 09:34:50 -上传包裹. 09:34:56 -创造. 09:35:28 -创建的部署ID: e464ba5932fc402faf6945e8a983b52e。 09:35:28 -角色折扣的实例0被停止 09:35:28 -开始. 09:35:45 -启动. 09:35:45 -角色折扣的实例0处于未知状态。 09:36:18 -角色折扣的实例0正在创建虚拟机。 09:37:23 -角色折扣的实例0正在启动虚拟机 09:39:33 -角色折扣的实例0处于未知状态。 09:40:06 -角色折扣的实例0很忙 细节:准备开始角色..。系统正在初始化。2015-02-24T09:39:43Z 09:42:10 -角色折扣的实例0正在重新启动详细信息:角色遇到错误并已停止。系统初始化成功。2015-02-24T09:41:57 z 09:44:14 -角色折扣的实例0是繁忙的细节:恢复角色.系统在
也尝试过在本地调试,将云服务项目设置为启动,但得到了一个错误,声明:
“'System.Configuration.ConfigurationErrorsException‘类型的未处理异常发生在WaWorkerHost.exe中。”遗憾的是,没有提供进一步的细节。
服务器资源管理器显示我的存储空间,但只显示Metrics表。
希望有人能给我指路,告诉我哪里出了问题。现在对所有这些都很感情用事,并试图做这个简单的项目近3天:
干杯,DS。
发布于 2015-02-26 09:34:03
为了更好地确定在azure中发生的异常,您应该尝试使用智能调试(我认为现在称为历史调试)来调试它。
但我的直觉是,您没有指定要使用哪个存储帐户用于启用的天蓝色存储持久性。
如果你坚持,不要犹豫,给我一份你的测试项目的副本,我会看看它。
https://stackoverflow.com/questions/28693063
复制相似问题