[英]Can I use ServiceStack in two different .NET MVC sites running in a shared environment on Sitecore?
我们将使用Sitecore构建的ASP.NET MVC应用程序提供给客户端,该客户端将应用程序部署到多站点/租户Sitecore安装。
我们在大多数项目中都大量使用ServiceStack,但现在遇到了一个问题。 Sitecore设置中的另一个应用程序也使用ServiceStack。 这会导致错误:
[InvalidDataException: AppHostBase.Instance has already been set]
这真的很有道理,因为Sitecore安装中所有应用程序的所有文件都在磁盘上的同一物理文件夹中。 意思是我们共享DLL和一切。
所以这个其他项目在我们之前初始化,然后当我们尝试注册我们的服务时,我们得到了上述错误。
有什么方法可以解决这个问题吗? 我可以以某种方式在现有的AppHostBase.Instance
上注册我的服务吗?
有两件事可能值得注意:
我们对Sitecore环境的设置没有任何影响。
如果必须在两个项目中完成某些事情,我们可以使用ServiceStack与其他团队一起工作。
您最好告诉ServiceStack所有具有您想要在AppHost构造函数中注册的服务的程序集,例如:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.