gpt4 book ai didi

c# - 我可以在 Sitecore 的共享环境中运行的两个不同的 .NET MVC 站点中使用 ServiceStack 吗?

转载 作者:行者123 更新时间:2023-11-30 12:23:08 26 4
gpt4 key购买 nike

我们正在向客户交付使用 Sitecore 构建的 ASP.NET MVC 应用程序,该客户将该应用程序部署到多站点/租户 Sitecore 安装。

我们在大多数项目中都大量使用 ServiceStack,但现在遇到了一个问题。 Sitecore 设置中的另一个应用程序也在使用 ServiceStack。这会导致错误:

[InvalidDataException: AppHostBase.Instance has already been set]

这真的很有意义,因为 Sitecore 安装中所有应用程序的所有文件都在磁盘上的同一个物理文件夹中。这意味着我们共享 DLL 和所有内容。

所以这个其他项目在我们之前初始化,然后当我们尝试注册我们的服务时,我们得到了上述错误。

有什么办法可以解决这个问题吗?我能否以某种方式在现有的 AppHostBase.Instance 上注册我的服务?

可能值得注意的两件事:

  1. 我们对 Sitecore 环境的设置有任何影响。

  2. 如果两个项目都需要做某事,我们可以使用 ServiceStack 与其他团队合作。

最佳答案

您最好用 Services you want registered in your AppHost 告诉 ServiceStack 所有程序集构造函数,例如:

public class AppHost : AppHostBase
{
//Tell ServiceStack the name of your app and which assemblies to scan for services
public AppHost() : base("Hello ServiceStack!",
typeof(ServicesFromDll1).Assembly,
typeof(ServicesFromDll2).Assembly
/*, etc */) {}

public override void Configure(Container container) {}
}

但是您可以在 ServiceStack 之外动态注册服务:

HostContext.ServiceController.RegisterService(typeof(MyService));

或者在程序集中注册所有服务:

HostContext.ServiceController.
RegisterServicesInAssembly(typeof(MyService).Assembly);

关于c# - 我可以在 Sitecore 的共享环境中运行的两个不同的 .NET MVC 站点中使用 ServiceStack 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38011946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com