在工作后已设置AppHostBase.Instance

问题描述

我有一个使用ServiceStack的ASP.Net WEB API。该API以前一直有效,但是现在抛出“ AppHostBase。实例已设置”。自上次成功调试以来,我没有更改任何代码。但是某些事情一定已经改变了。

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

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

然后在Start方法中:

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

然后触发引发错误的configure方法。为什么突然出现“ AppHostBase.Instance已设置实例”错误的任何想法?

解决方法

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

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

static hasInit = false;
public static void Start()
{
    if (hasInit) throw new Exception("Start() Called twice");
    new AppHost().Init();
    hasInit = true;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...