NServiceBus - 类型未在序列化程序中注册 - 修复?

时间:2011-06-29 15:16:17

标签: c# .net deployment nservicebus application-pool

我们在Web应用程序中使用NServiceBus,每次将代码部署到生产环境时,我们都必须删除文件夹中的临时文件:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

我们按照此处的说明解决此问题:

http://www.nservicebus.com/faq/TypeNotRegisteredInSerializer.aspx

我想知道是否有更持久的修复方法?每次部署新代码时,我都觉得我正在与此作斗争。从代码处理此问题的最佳方法是什么?如果这不起作用,最好是在每次部署新代码时停止应用程序池,删除文件并重新启动应用程序池吗?

感谢您的任何建议。

3 个答案:

答案 0 :(得分:8)

而不是使用Configure.WithWeb(),而是尝试:

Configure.With(HttpRuntime.BinDirectory)

这样,它将搜索已部署的Web应用程序中的实际bin文件夹,而不是临时文件夹。这也是nservicebus 3.0中的默认行为。

答案 1 :(得分:1)

我们也打了这个。没有找到比停止应用程序池,删除临时asp.net文件然后重新启动更好的东西。

答案 2 :(得分:1)

如果您有一些应该被忽略的程序集,那么解决方案是什么?我们有这样的事情:

_bus = Configure.With(AllAssemblies.Except("IncompatibleAssembly.dll"))