1

我有一个使用 ServiceStack 的 ASP.Net WEB API。该 API 以前一直在工作,但现在正在抛出“AppHostBase.The instance has been set”。自上次成功调试以来,我没有更改任何代码。但一定有什么改变了。

我在 AppHost.cs 中调用 ServiceStack 程序集:

[assembly: WebActivator.PreApplicationStartMethod(typeof(App_Start.AppHost), "Start")]

然后在 Start 方法中:

public static void Start()
{
    new AppHost().Init();
}

然后触发引发错误的配置方法。为什么突然出现“AppHostBase.The instance has been set”错误的任何想法?

4

1 回答 1

0

也许您在PreApplicationStartMethod某个地方有多个注册?或调用此代码的其他一些反射功能。

异常表示 AppHost 初始化被调用了两次,您可以尝试使用静态标志进行检查以验证它是否被调用了两次,例如:

static hasInit = false;
public static void Start()
{
    if (hasInit) throw new Exception("Start() Called twice");
    new AppHost().Init();
    hasInit = true;
}
于 2020-09-15T13:15:39.223 回答