标签: nservicebus4

NServiceBus不自动创建队列(MSMQ)

我正在从NServiceBus网站(http://docs.particular.net/samples/step-by-step/)做例子,当我在Visual Studio中运行时,一切正常,队列自动创建(即使我删除他们重新运行解决方案而不是自动创建解决方案.开发机器运行Windows 8.

我有一个模拟的Windows 2008 RC2 - 当我把我的解决方案bin文件夹带到服务器机器并尝试运行NServiceBus.Host.exe时它最终崩溃,原因是:"队列不存在或者你没有足够的权限执行操作" - 即使我以管理权限运行.查看队列时,我看到它们没有被创建,如果我手动创建队列而不是它的工作.

为什么在不同的机器上运行时不会自动创建队列?

更新

如果我运行NServiceBus.Host.exe /install它比创建队列,并将其安装为Windows服务.但我想做的是定期运行它.如果我只运行exe,它是否被视为自托管?

msmq nservicebus nservicebus4

4
推荐指数
1
解决办法
2423
查看次数

NServiceBus 4没有RavenDB

无论如何在没有安装RavenDB的情况下使用NServicebus 4?我们正在使用2.5,我想升级到4但如果我们必须在生产服务器上安装RavenDB,这将是一个艰难的销售.有什么工作吗?

nservicebus ravendb nservicebus4

3
推荐指数
1
解决办法
2477
查看次数

使用.XmlSerializer()的NServiceBus 4配置错误

在此配置中使用NSB 4:

Configure.With()
    .DefaultBuilder()
    .XmlSerializer()
Run Code Online (Sandbox Code Playgroud)

给出此错误警告

'NServiceBus.ConfigureXmlSerializer.XmlSerializer(NServiceBus.Configure, string, bool)' 
is obsolete: 'Please use 'Configure.Serialization.Xml()' instead. Will be treated as an 
error from version '5.0'. Will be removed in version '6.0'.'
Run Code Online (Sandbox Code Playgroud)

该怎么Configure.Serialization.Xml()用?

nservicebus nservicebus4

2
推荐指数
1
解决办法
884
查看次数

首次将消息发送到错误队列

使用NServiceBus 4.3我想在出现某些条件时向错误队列发送消息.

场景是当我收到消息时,检查此消息是否指的是我们数据库中的一个或多个项目.如果有多个引用我扔了一个AmbiguousItemException并抓住它.我需要通过电子邮件向负责人提供正确的信息.所有这一切都被弄清楚,但我不希望再次尝试这条消息.相反,我宁愿将其移动到错误Queue,所以当我们收到我们需要的信息时,我们可以添加nullable属性并将消息放回队列进行处理.我已经尝试使用_bus.ForwardCurrentMessageTo("error"),_bus.Send("error", message), _bus.SendLocal(message).最后一个基本上将消息放在无限循环中.代码有点像这样.

public class MoveToErrorQueue
{
    private readonly IBus _bus;

    public MoveToErrorQueue(IBus bus)
    {
        _bus = bus;
    }

    public virtual void Send(ResubmitMessage message)
    {
        message.Foo= -1;
        _bus.Send("error", message);
    }
}
Run Code Online (Sandbox Code Playgroud)

以及调用它的代码

        try
        {
            //removed for brevity
        }
        catch (AmbiguousItemException ex)
        {
            Log.Error(ex);
            sendNotificationCommand.FailureMessage = ex.Message;
            _moveToErrorQueue.Send(commandMesage);
        }
        SendNotification(sendScanningNotificationCommand);
Run Code Online (Sandbox Code Playgroud)

c# error-handling nservicebus nservicebus4

2
推荐指数
1
解决办法
401
查看次数

NServiceBus如何知道使用哪个DLL?

这不是问题,而是让我理解NserviceBus中发生的"魔法"的问题

我有一个工作环境,其中以这种方式调用NServiceBus-Service:

"D:\Service\NServiceBus.Host.exe" -service  /serviceName:"MyServiceAdapter" /endpointName:"MyQueue.Adapter"
Run Code Online (Sandbox Code Playgroud)

现在在同一目录中有我的应用程序"My.Adapter.dll",它也有一个配置.任何地方都没有NserviceBus.config.仍然:NserviceBus似乎知道它必须使用"My.Adapter.dll"

为什么NServiceBus知道这一点?我没有在队列(MSMQ)或我的应用程序的任何其他位置找到任何引用.它是否保存在注册表中?如果是的话:在哪里?

c# nservicebus nservicebus4

0
推荐指数
1
解决办法
83
查看次数

标签 统计

nservicebus ×5

nservicebus4 ×5

c# ×2

error-handling ×1

msmq ×1

ravendb ×1