9

我正在尝试将 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

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

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

这可能是什么原因造成的?

4

2 回答 2

16

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

App_Start/ServiceStackFramework.cs

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

于 2012-01-21T17:13:17.610 回答
3

在我重命名我的项目后,这个错误也发生在我身上。确保进入 bin 文件夹并删除所有 dll,以防预重命名的项目 dll 中的旧 dll 仍在其中!

于 2014-10-01T14:43:48.313 回答