2012-01-21 12 views
9

Estoy tratando de implementar ServiceStack en mi proyecto MVC3, y estoy siguiendo el tutorial en: http://www.servicestack.net/ServiceStack.Hello/Service Stack/MVC: error "AppHostBase.Instance ya se ha configurado", pero no puedo entender por qué/cómo prevenir

Mi Global.asax.cs ahora queda como:

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

     } 
    } 
} 

... según las instrucciones.

Sin embargo, cuando llamo el método Init(), consigo la excepción:

InvalidDataException: AppHostBase.Instance ya se ha establecido

googlear alrededor por esto proporciona ninguna ayuda, salvo el código fuente en http://code.google.com/p/servicestack/source/browse/trunk/Common/ServiceStack.Common/ServiceStack.WebHost.Endpoints/AppHostBase.cs?r=1322

En cuanto a esto, de alguna manera, se está estableciendo la instancia. ¿Pero cómo?

¿Qué podría estar causando esto?

Respuesta

16

Si ha instalado ServiceStack a través del proyecto NuGet ServiceStack.Host.Mvc se crea automáticamente la clase apphost para usted dentro:

App_Start/ServiceStackFramework.cs 

Su ejemplo parece que es posible que haya añadido su propia apphost también. Entonces, si elimina este AppHost y utiliza el proporcionado, ya no debería tener este error.

+0

En mi versión, el archivo todavía está en la carpeta App_Start, pero se ha renombrado AppHost.cs. Estaba siguiendo el tutorial que se encuentra aquí: https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice – rball

+0

Tengo el mismo problema ahora. No hay archivos adicionales en ninguna parte. ¿Dónde encuentro App_Start/ServiceStackFramework.cs? Lo he implementado exactamente como estaba en el tutorial. Recientemente actualicé Xamarin Studio y utilicé la herramienta NuGet para actualizar los paquetes. Luego dejó de funcionar en nuestra mono pila, funciona bien en mi máquina de Windows. –

2

También me pasó el error después de renombrar mi proyecto. ¡Asegúrate de ir a la carpeta bin y borrar todas las dlls, en caso de que las antiguas dlls del proyecto estén renombradas!

Cuestiones relacionadas