2012-01-21 8 views
9

Próbuję wdrożyć ServiceStack w moim projekcie MVC3 i postępuję zgodnie z tutorialem pod adresem: http://www.servicestack.net/ServiceStack.Hello/Service Stack/MVC: "Błąd AppHostBase.Instance został już ustawiony" - ale nie mogę zrozumieć, dlaczego/jak zapobiec

My Global.asax.cs teraz wygląda:

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(); 

     } 
    } 
} 

... zgodnie z instrukcją.

Jednak, kiedy wywołać metodę init(), otrzymuję wyjątek:

InvalidDataException: AppHostBase.Instance został już ustawiony

Googling wokół tego nie zapewnia pomocy, z wyjątkiem kod źródłowy: http://code.google.com/p/servicestack/source/browse/trunk/Common/ServiceStack.Common/ServiceStack.WebHost.Endpoints/AppHostBase.cs?r=1322

Patrząc na to, w jakiś sposób ustawiana jest instancja. Ale jak?

Co może być przyczyną?

Odpowiedz

16

Jeśli zainstalowałeś ServiceStack poprzez projekt Nuget ServiceStack.Host.Mvc automatycznie tworzy klasę AppHost dla ciebie Wewnątrz:

App_Start/ServiceStackFramework.cs 

Twój przykład wygląda może dodaniu własnego AppHost również. Jeśli więc usuniesz ten AppHost i użyjesz podanego, nie powinieneś już mieć tego błędu.

+0

W mojej wersji plik nadal znajduje się w folderze App_Start, ale został przemianowany na AppHost.cs. Śledziłem tutorial znajdujący się tutaj: https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice – rball

+0

Mam ten sam problem teraz. Nie ma żadnych dodatkowych plików w dowolnym miejscu. Gdzie znajdę App_Start/ServiceStackFramework.cs. Zaimplementowałem go dokładnie tak, jak to było w samouczku. Niedawno zaktualizowałem Xamarin Studio i użyłem narzędzia NuGet do aktualizacji pakietów. Następnie przestał działać na naszym monopod stosie, działa dobrze na moim komputerze z systemem Windows. –

2

Ten błąd przydarzył mi się również po zmianie nazwy mojego projektu. Upewnij się, że przejdziesz do folderu bin i usuniesz wszystkie biblioteki dll, na wypadek, gdyby stary z plików projektu o wcześniej przemianowanej nazwie nadal tam był!

Powiązane problemy