在 webjob 和 web api 之间共享域 DLL?

Share Domain DLL between webjob and web api?

我使用 webjob 处理消息队列,使用 web API 处理 REST 请求。 这两种具有相同限界上下文的应用程序类型之间共享域的解决方案是什么? 我可以引用同一个域 DLL 还是它是一个糟糕的设计选择?

我建议使用以下项目设置您的 Visual Studio 解决方案:

  1. WebAPI 项目
  2. 应用层项目
  3. Web 作业项目 4 - N。[所有其他项目,如数据访问层]

WebAPI 和 WebJob 项目都引用应用层项目。

在 Web 应用程序中,WebAPI 和 WebJob 项目都有自己的应用程序层 DLL 副本。在您的 Web 应用程序上保留一个 DLL 副本并在两者之间共享它没有任何好处(除了节省几 KB 的磁盘 space)。但它会增加部署的复杂性。

此外,您可能希望在将来的某个时候将您的 WebJob 移动到不同的 Web 应用程序。在两者之间共享 DLL 的单个副本将迫使您为此进行更改。