Service Stack / MVC:“AppHostBase.Instance已设置”错误 – 但无法理解为什么/如何防止

我正在尝试将ServiceStack实现到我的MVC3项目中,并遵循以下教程: http : //www.servicestack.net/ServiceStack.Hello/

我的Global.asax.cs现在看起来像:

public class MvcApplication : System.Web.HttpApplication { public class Hello { public string Name { get; set; } } public class HelloResponse { public string Result { get; set; } } public class HelloService : IService { public object Execute(Hello request) { return new HelloResponse { Result = "Hello, " + request.Name }; } } public class HelloAppHost : AppHostBase { //Tell Service Stack the name of your application and where to find your web services public HelloAppHost() : base("Hello Web Services", typeof(HelloService).Assembly) { } public override void Configure(Container container) { //register user-defined REST-ful urls Routes .Add("/hello") .Add("/hello/{Name}"); } } protected void Application_Start() { new HelloAppHost().Init(); } } } 

……按照说明。

但是,当我调用Init()方法时,我得到exception:

InvalidDataException:已设置AppHostBase.Instance

谷歌搜索没有任何帮助,除了http://code.google.com/p/servicestack/source/browse/trunk/Common/ServiceStack.Common/ServiceStack.WebHost.Endpoints/AppHostBase.cs?r上的源代码= 1322

看看这个,不知何故,实例正在设置中。 但是怎么样?

可能是什么导致了这个?

如果您通过NuGet ServiceStack.Host.Mvc项目安装了ServiceStack,它会自动为您创建AppHost类:

 App_Start/ServiceStackFramework.cs 

您的示例看起来也可能已添加了您自己的AppHost。 因此,如果删除此AppHost并使用提供的AppHost,则不应再出现此错误。

在我重命名我的项目后,错误也发生在我身上。 确保你进入你的bin文件夹并删除所有dll,以防来自预先重命名的项目dll的旧文件仍在那里!