为了避免重写代码相同的配置,或举办你的端点在Windows服务中,使用 NServiceBus.Host.exe,这也可以作为一个控制台运行。

NServiceBus主机简化服务的开发和部署,没有代码,允许你改变技术和administrator-friendly当设置权限和账户。

使用主机就创建一个新的c#类库和引用NServiceBus。主机NuGet包

install-package NServiceBus.Host

就这样,计划将创建一个示例NServiceBus.Host端点配置和设置。exe运行您的端点。

配置您的端点

NServiceBus.Host.exe扫描运行时目录组件包含一个实现类 IConfigureThisEndpoint接口。这个类将包含此端点配置。你可以关于NServiceBus如何组装扫描在这里

如果你想避免扫描过程您可以显式配置端点配置的类型通过添加以下的 NServiceBus.Host.exe.config文件。下面的示例显示准确的语法:

v5

编辑

<configuration><appSettings><add key="EndpointConfigurationType" value="YourNamespace.YourTypeName, YourAssembly"/></appSettings>
</configuration>

自定义初始化和创业

NServiceBus v5你自定义端点使用行为 IConfigureThisEndpoint.Customize方法在您的端点配置类。就调用适当的方法 BusConfiguration参数传递给方法。

v5

编辑

using NServiceBus;
class CustomizingHost : IConfigureThisEndpoint
{public void Customize(BusConfiguration configuration){// To customize, use the configuration parameter. // For example, to customize the endpoint name:configuration.EndpointName("NewEndpointName");}
}
NServiceBus v4和v3

改变组装等核心设置扫描、容器和序列化格式,实现 IWantCustomInitialization在端点配置类(同一个类实现IConfigureThisEndpoint)。你���须开始配置表达式 With

Configure.With()

不执行任何启动的行为 Init方法。

自定义initalization后做了常规的核心 INeedInitalization实现发现将以同样的方式,当你自我托管。

推迟所有的创业行为,直到所有初始化已经完成。在这一点上,NServiceBus调用的类实现IWantToRunWhenBusStartsAndStops (IWantToRunWhenTheBusStarts在v3 . x)接口。行为适用于实现的一个例子IWantToRunWhenBusStartsAndStops (IWantToRunWhenTheBusStarts在v3 . x)的主要形式在一个Windows窗体应用程序。在Windows服务,后端实现类 IWantToRunWhenBusStartsAndStops(IWantToRunWhenTheBusStarts在v3 . x)应��启动诸如web爬行,数据挖掘和批处理过程。

日志记录

NServiceBus v5日志的主机使用相同的API为核心的控制。这是记录在这里.

您可以添加日志API调用上述所直接在您的实现 IConfigureThisEndoint.Customize方法。

NServiceBus v4和v3

更改主机的日志记录基础设施,实现 IWantCustomLogging接口。在 Init方法,配置您的自定义设置。NServiceBus利用你的日志,使用 NServiceBus.SetLoggingLibrary.Log4Net()API,所描述的日志文档,如下所示:

V4

编辑

class MyEndpointConfig : IConfigureThisEndpoint, IWantCustomLogging
{public void Init(){// setup your logging infrastructure then callSetLoggingLibrary.Log4Net(null, new MyLogger());}
}

你可能想要指定不同的日志级别(DEBUG, WARN等)和不同的目标 (CONSOLE, FILE等)。主机提供一个机制来改变这些排列没有代码或配置更改,通过配置文件 .

角色——内置配置

版本5的角色被弃用,不应该被使用。大部分的功能 AsA_Server, AsA_Publisher核心已经违约,可以安全地删除。如果你还需要 AsA_Client请添加以下您的配置行为。

v5

编辑

var config = new BusConfiguration();config.PurgeOnStartup(true);
config.Transactions().Disable();
config.DisableFeature<SecondLevelRetries>();
config.DisableFeature<StorageDrivenPublishing>();
config.DisableFeature<TimeoutManager>();
NServiceBus v4和v3

剩下的代码指定运输、订阅存储,和其他技术并不在这里,因为 AsA_Server内置的配置描述。

虽然NServiceBus允许您选择使用哪一个技术和如何配置它们,这些选择主机包分成三个内置选项: AsA_Client,AsA_Server, AsA_Publisher。利用所有这些选项 XmlSerializer, MsmqTransport, UnicastBus。不同的是在配置:

  • AsA_ClientMsmqTransport非事务性和清洗的队列上的消息启动。这意味着它每次都重新开始,不记得任何事情之前崩溃。同时,它处理消息使用自己的权限,而不是消息的发送者。
  • AsA_ServerMsmqTransport事务和在启动时不清除队列的消息。这使得它容错。
  • AsA_Publisher扩展 AsA_Server和指示设施设置存储订阅请求,描述的简介页面.

安装

当端点的上下文中运行Visual Studio调试器中,端点开始时,需要在启动时创建队列来促进发展。然而,当这个端点部署到服务器,开始从命令提示符端点不会创造所需的队列,如果队列不存在。创建队列是一次性的成本只会发生在安装期间。

安装过程作为一个Windows服务,您需要通过 /install在命令行上的主机。默认情况下,服务的名称是您的端点和端点的名称叫端点配置类的命名空间。要启用并行操作,使用 /sideBySide切换到SemVer版本添加到服务名称。通过/安装也会造成主机调用安装程序 .

为安装覆盖这个和指定附加的细节:

NServiceBus.Host.exe [/install [/serviceName]
[/displayName]
[/description]
[/endpointConfigurationType]
[/endpointName]
[/installInfrastructure]
[/scannedAssemblies]
[/dependsOn]
[/sideBySide]
[/startManually]
[/username]
[/password]]
[/uninstall [/serviceName]
[/sidebyside]
[/instance:Instance Name ]

你可以通过运行下面这个列表在命令行:

NServiceBus.Host.exe /?

设置Windows服务注册中心的实际名称,指定 /serviceName:YourServiceName。这是不同于你所看到的在Windows服务经理。

设置Windows服务的名称作为你看到它在Windows服务经理,指定 /displayName:YourService.

如果你不指定 /displayName,但指定 /serviceName,显示名称不成为中传递 /serviceName,而是上述违约。

设置描述Windows服务经理所示,指定 /description:DescriptionOfYourService.

安装相同服务的多个实例,提供每一个不同的实例名,使用“实例”的旗帜。例如: /instance:Instance5.

默认情况下,窗口服务操作系统启动时自动启动。改变,添加 /startManually/install命令。

指定的帐户你想要你的服务,通过该帐户的用户名和密码。

下面的一个例子 /install命令行:

NServiceBus.Host.exe /install /serviceName:"MyPublisher"
/displayName:"My Publisher Service"
/description:"Service for publishing event messages"
/endpointConfigurationType:"YourNameSpace.YourEndpointConfigType, YourAssembly"
/username:"corp\serviceuser"
/password:"p@ssw0rd!" NServiceBus.Production

卸载,叫

NServiceBus.Host.exe /uninstall

如果你指定一个服务名称或实例名称安装您的服务时,您需要将它们传递到卸载命令:

NServiceBus.Host.exe [/uninstall  [/serviceName] [/instance]]

例如:

NServiceBus.Host.exe /uninstall /serviceName:YourServiceName /instance:YourInstanceName

调用基础设施安装、运行的主机 /installInfrastructure开关。了解安装程序。

转载于:https://www.cnblogs.com/powerxu/p/4294333.html

NServiceBus主机相关推荐

  1. NServiceBus教程-消息传递与处理

    nservicebus"的容错默认"设计的一部分,基础设施管理事务自动所以你不需要记住所有的线程和状态管理要素配置. 客户端和服务器 理想情况下,服务器代码处理消息事务,但它往往不 ...

  2. vmware虚拟机怎么让窗口自动调整大小适应主机

    vmware是一款非常好用的虚拟机,大部分用户都会用vmware安装各种操作系统,安装后可能会出现一个问题,就是主机屏幕太小,无法完整显示VMware虚拟机界面,这时候就可以设置让VMware自动适应 ...

  3. Ubuntu 系统如何修改主机名

    比如现在的主机名为: hly@hly_chenming_453212: 在终端中输入:hostnamectl set-hostname 您要要修改的民子 执行完之后在重启电脑即可 :sudo rebo ...

  4. Ubuntu16.04 永久修改主机名 hostname

    1. 查看主机名 在终端输入 hostname 即可查看主机名 wohu@wohu:/$ hostname wohu wohu@wohu:/$ 2. 修改主机名 2.1 修改 /etc/hostnam ...

  5. linux跨主机复制文件

    scp -r billing@10.200.171.111:/billdata2/user/yanhm/redis/* /newboss/billing/user/aabb 其中: 10.200.17 ...

  6. RedHat、CentOS设置静态IP、主机名、关闭防火墙(虚拟机VMware客户机)

    设置静态IP.主机名 1. /etc/sysconfig/network [root@hadoop ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTN ...

  7. 虚拟服务器磁盘满了咋办,虚拟主机磁盘空间不够用怎么办?

    在使用 虚拟主机磁盘空间不够用怎么办? 一.清除安装文件 对于已经安装完毕的应用程序,也包括不用的主题和插件,及时删除没有实际用处的安装文件可以节省出许多空间容量,且不影响任何网站运行. 二.清楚数据 ...

  8. java getservername_Tomcat:getHeader(“主机”)与getServerName()

    我有一个从多个域提供服务的Tomcat应用程序.以前的开发人员构建了一种返回应用程序URL的方法(请参见下文).在该方法中,他们请求服务器名称(request.getServerName()),该 名 ...

  9. 服务器主机防御系统,主机入侵防御系统

    主机入侵防御系统 时间:2014-11-2 主机入侵防御系统(Host Itrustion Prevention System,HIPS)用于保护服务器免受恶意攻击,确保系统不接受未经认可的修改操作, ...

最新文章

  1. Java 领域 offer 收割:程序员黄金 5 年进阶心得!
  2. python 给字典排序
  3. 计算机书籍-C++并发编程实战
  4. springboot 创建地址_这可能是史上最易懂的 Spring Boot 入门教程
  5. 计算机网络误区——为什么我的PING包发不出去?
  6. c语言小游戏百度云资源,c语言小游戏合集
  7. MIKE水动力笔记8_冷启动与热启动
  8. ae制h5文字动画_大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
  9. 2021年安全员-C证(陕西省)考试试卷及安全员-C证(陕西省)模拟试题
  10. 筹码底部共振(同花顺指标 副图 源码 测试图)
  11. 10分钟轻松定制网站日志分析大盘
  12. 亲密关系的本质是分享:如何把握暧昧的窗口期?
  13. 推荐一个可以倍速播放HTML5视频的脚本
  14. mPaas之如何查找离线包的在线加载地址
  15. nRF24l01无线传输
  16. 四阶巴特沃兹低通滤波器的设计与仿真
  17. flask 产生KeyError:‘migrate‘报错
  18. 时间管理的小技巧(续)
  19. [unity3d]场景烘焙
  20. 使用光波导元件模拟“HoloLens 1”型布局

热门文章

  1. 用户'sa'登录失败(错误18456)解决方案图解
  2. 在不停止mysql复制主服务器的情况下,配置一个mysql复制从服务器
  3. MATLAB学习笔记(九)
  4. matlab uigetfile的用法,matlab中uigetfile的用法
  5. python文字处理dummy_python中multiprocessing、multiprocessing.dummy和threading用法笔记
  6. 有关计算机科学导论的说法,计算机科学导论__练习题_汇总.docx
  7. color-loss pytorch实现
  8. Net平台下的B/S开发框架
  9. linux 挂iscisc存储,基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文.docx...
  10. MySQL 表分区 Partition