我正在尝试将 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<Hello>
{
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>("/hello")
.Add<Hello>("/hello/{Name}");
}
}
protected void Application_Start()
{
new HelloAppHost().Init();
}
}
}
...按照说明。
但是,当我调用 Init() 方法时,出现异常:
InvalidDataException: AppHostBase.Instance has already been set
除了在 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,您应该不会再出现此错误。
关于c# - 服务堆栈/MVC : "AppHostBase.Instance has already been set" error - but can't understand why/how to prevent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954622/