- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们使用NServiceBus.Host.exe托管我们的服务,端点的程序集与NServiceBus.Host.exe位于同一文件夹中。在主文件夹下,我们有一个子文件夹,其中包含处理消息的过程所需的程序集。我们遇到的问题是,当NServiceBus.Host.exe加载时,它会从子文件夹中找到程序集,但无法加载它们并因错误而崩溃:
未处理的异常:Magnum.StateMachine.StateMachineException:Topshelf.Internal.ServiceController 1[
2.MoveNext()中发生异常
[NServiceBus.Hosting.Windows.WindowsHost, NServiceBus.Host, Version=3.0.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c]] during state Initial while handling OnStart ---> Microsoft.Practices.ServiceLocation.ActivationException: Activation error occured while trying to get instance of type WindowsHost, key "MyPoint.BusMessageEndPoint, MyPoint, Version=4.3.0.0, Culture=neutral, PublicKeyToken=null" ---> System.IO.FileNotFoundException: Could not load file or assembly 'MyAssembly, Version=4.3.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at System.Linq.Enumerable.WhereSelectArrayIterator
在System.Collections.Generic.List 1..ctor(IEnumerable
1集合中)
在System.Linq.Enumerable.ToList [TSource](IEnumerable 1 source)
1 defaultProfiles,String endpointName,IEnumerable
at NServiceBus.Hosting.GenericHost..ctor(IConfigureThisEndpoint specifier, String[] args, IEnumerable1 scannableAssembliesFullName) in c:\NServiceBus-NServiceBus-3.3.5-0\src\hosting\NServiceBus.Hosting\GenericHost.cs:line 145 at NServiceBus.Hosting.Windows.WindowsHost..ctor(Type endpointType, String[] args, String endpointName, Boolean runOtherInstallers, Boolean runInfrastructureInstallers, IEnumerable
1 scannableAssembliesFullName)在c:\ NServiceBus-NServiceBus-3.3.5-0 \ src \ hosting \ NServiceBus.Hosting中.Windows \ WindowsHost.cs:第31行
在c:\ NServiceBus-NServiceBus-3.3.5-0 \ src \ hosting \ NServiceBus.Hosting.Windows \ HostServiceLocator.cs:line 41中的NServiceBus.Hosting.Windows.HostServiceLocator.DoGetInstance(Type serviceType,String key)
在Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType,String key)在第0行中
主机似乎以某种方式找到了程序集,但无法加载它们。我还没有找到任何方法告诉主机不要查看子文件夹。如果将程序集从子文件夹移动到主文件夹(位于NServiceBus.Host.exe所在的同一文件夹中),一切都将正常工作,但这使我们的结构非常不整洁,并且此子文件夹方式与NServiceBus 2.6一起正常工作-现在升级到3.3.5我们有问题。
有什么方法可以阻止子文件夹从主机加载-或如果主机在子文件夹中找到程序集,为什么不能加载它们?那也将解决我们的问题。
非常感谢有人可以帮助我。
如果可以稍微说明一下,我将在评论中添加我的评论。感谢您的回答!
子文件夹中的程序集不需要由NSericeBus.Host.exe加载-它们是通过使用MEF从我们的消息终结点程序集(由NServiceBus.Host加载)加载的。
在NServiceBus 2.6中,子文件夹中的程序集不是由NServiceBus.Host加载的,或者它可以处理它们,但现在不能这样做。在我影响负载之前,负载崩溃了。在调试中,崩溃发生在Configure.With()发生之前,所以我不能告诉NServiceBus关闭该子文件夹。
最佳答案
您不能在子文件夹中拥有那些必要的程序集。我不知道这在2.6中有效,但如果是这样,那可能是意想不到的。我确实知道那里的某个位置用于加载程序集的方法已更改,因此我们可以在所有实例中使用Configure.With()
,而在自托管时不必在.With()
和.WithWeb
之间进行选择。也许这就是这种改变的副作用。
无论如何,如果主部署目录为“ untidy”,那又为什么呢?我认为这只会使部署方案复杂化,以使其看起来更漂亮,并且肯定不会增加任何业务价值。
关于nservicebus - NServiceBus 3.3.5“无法加载文件或程序集”在子文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16960928/
current advice on handling exceptions in NServiceBus是使用内置的设施。错误消息进入错误消息队列,并将日志写入磁盘。 但是,如果我想将我的错误发送到
我们正试图找出用于我们的 NServiceBus 服务的最佳线程数。我们在一台有 2 个四核的机器上运行它。我们在队列备份方面遇到了问题。我们从 100 个线程开始,然后增加到 200 个,事情变得更
我有一个现有的 NServiceBus 2.6 应用程序,我想开始迁移到 3.0。我正在寻找第一个实例的最小更改升级。这就像用 3.0 Nuget 包替换 2.6 DLL 一样简单,还是有其他考虑?
是否可以在 NServiceBus 版本 3.2.2 中禁用重试? 使用以下配置,可以禁用重试: 但当线程数设置为 20 时则不会。在这种情况下,消息会重试两次: 这看起来很像
NServiceBus 的“重试”系统很棒。它在确保像死锁这样的小事情不会把我们搞砸方面非常有效。 但是,有时我知道一条消息是不好的。从某种意义上说,再多的重试也无济于事。 有没有办法告诉 NServ
使用 NEventStore 时如何集成到 NServiceBus? 我是 NSB ans ES 的新手,并试图在使用 ES 和 CQRS 时找出 NSB 的最佳设置。 我以与示例中的 Dispatc
我刚刚开始使用 NServiceBus,无法弄清楚在代码中配置 MsmqTransport 时缺少什么。如果我这样配置发布者; IBus bus = Configure.With()
遵循此解释的最简单方法是 NServiceBus Pub/Sub 示例,其中包含“多态订阅”示例 (Subscriber2)。 消息:(未更改) public class EventMessage :
Udi 和 Andreas 多次提到 NServiceBus 安装的零停机升级。对 NServiceBus 安装执行零停机升级的正确方法是什么? 最佳答案 这意味着,由于 NSB 使用消息传递作为底层
我有一个场景,我需要通过一个简单的经过身份验证的 REST API 向第三方公开一堆在 NServiceBus 中创建的事件消息。第三方可能使用也可能不使用 .NET(它们甚至可能是浏览器中的 Jav
假设我使用延迟消息传递功能在将来的某个时间点发送消息,但稍后我可能想取消该消息。 问题 1 - 进行原始 bus.Defer(...) 调用时,如何为该消息取回唯一标识符?我希望有消息 ID 或某种超
背景 我们正在尝试在我们的公司中引入一种新的架构模式,并且正在考虑使用服务总线的具有事件源的 CQRS。我们目前正在开发 POC 的技术是 NServiceBus、事件存储和 MSMQ。我们希望在 N
NServiceBus 到底是 ESB 还是轻量级 ESB?还是更像具有持久/可靠消息传递的 WCF?在我看来,它更像是一个消息传递框架而不是 ESB。 只是想要一些指针,因为我刚刚开始研究不同的 E
我正在尝试将 NServiceBus 设置为使用远程错误队列来简化错误检查的管理。当我这样做时,我在 NServiceBus.Host.exe 启动时收到以下错误: 2010-03-25 07:59:
我知道这对很多人来说似乎很明显,但我的客户使用的模式我不太方便。 案例是,他们的客户通过 nservicebus 将存款或取款发送到第三方系统。第三方系统需要处理该交易,但可能需要数天,甚至数周才能完
有没有办法禁止将失败的消息发送到 NServiceBus 的错误队列? 对于一个特定的端点,我不想在二级重试失败后重试消息。相反,我将使用此处提到的 MessageSentToErrorQueue 错
我遇到了与重试相关的行为,在我尝试过的文档或搜索中找不到任何引用。基本上,如果我的处理程序处理消息的时间超过 60 秒(注意它不会引发异常),NServiceBus 会触发另一个处理程序来处理相同的消
我有一个需要以同步方式调用 nservicebus 的 Web 服务。 如何做到这一点? 最佳答案 查看 AsyncPages 示例。如果您希望它是同步的,只需阻塞直到回调完成。 希望这可以帮助! 关
我想创建一个由消息“Event1”开始的传奇,但它会忽略收到具有相同应用 ID 的“重复”开始消息(这可能是由于两个或多个用户在短时间内点击了 UI 按钮) .文档似乎表明这种方法可行: 佐贺声明 I
过去 6 个月的学习曲线充满挑战,CQRS 和 DDD 是罪魁祸首。 这很有趣,我们已经完成了项目的 1/2,而我还没有时间深入研究的领域是消息传递框架。 目前我不使用 DTC,所以有一个很好的可能性
我是一名优秀的程序员,十分优秀!