Служебный стек / MVC: ошибка «AppHostBase.Instance уже установлена» - но не могу понять, почему / как предотвратить - PullRequest
9 голосов
/ 21 января 2012

Я пытаюсь внедрить 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

Смотря на это, каким-то образом устанавливается Экземпляр.Но как?

Что может быть причиной этого?

Ответы [ 2 ]

16 голосов
/ 21 января 2012

Если вы установили ServiceStack через проект NuGet ServiceStack.Host.Mvc, он автоматически создаст для вас класс AppHost:

App_Start/ServiceStackFramework.cs

Ваш пример выглядит так, как будто вы также добавили свой собственный AppHost,Поэтому, если вы удалите этот AppHost и воспользуетесь предоставленным, у вас больше не будет этой ошибки.

3 голосов
/ 01 октября 2014

Ошибка произошла со мной и после того, как я переименовал свой проект.Обязательно зайдите в папку bin и удалите все библиотеки DLL, если старая папка из предварительно переименованных библиотек проекта все еще там!

...