我正在尝试将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
在google上搜索这个没有帮助,除了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,则不应再出现此错误。

08-28 12:18