ServiceStackHost.Instance 已设置 (BasicAppHost)

ServiceStackHost.Instance has already been set (BasicAppHost)

我正在使用 xunit 运行 测试。一个接一个它工作得很好但是一旦我运行它们在并行服务堆栈中抛出异常。

 System.IO.InvalidDataException : ServiceStackHost.Instance has already been set (BasicAppHost)
   at ServiceStack.ServiceStackHost.Init() in C:\BuildAgent\work9c742886e82e6\src\ServiceStack\ServiceStackHost.cs:line 175    

appHost = new BasicAppHost(typeof(AppHost).GetAssembly())
                {
                    ConfigureContainer = container =>
                    {
                        container.Register<IDbConnectionFactory>(
                            new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider));
                    }
                }
                .Init();

您在任何时候都只能为每个 AppDomain 初始化一个 AppHost。如果您要并行 运行 测试以初始化新的 AppHost,则它们必须 运行 在单独的 AppDomains 中。

您可以使用 ICollectionFixture。

在 class 中初始化 appHost,例如 BaseFixture。

在此处查看示例:https://xunit.net/docs/shared-context