我正在尝试将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已设置
看看这个,不知何故,正在设置实例。但是如何?
导致这种情况的原因是什么?
答案 0 :(得分:16)
如果您已经通过NuGet ServiceStack.Host.Mvc项目安装了ServiceStack,它会自动为您创建AppHost类:
App_Start/ServiceStackFramework.cs
您的示例似乎也可能添加了您自己的AppHost。因此,如果删除此AppHost并使用提供的AppHost,则不应再出现此错误。
答案 1 :(得分:3)
在我重命名我的项目之后,错误也发生在我身上。确保你进入你的bin文件夹并删除所有dll,以防来自预先重命名的项目dll中的旧dll仍在那里!