2012-01-21 9 views
9

我想實現ServiceStack到我的MVC3項目,並遵循教程在:http://www.servicestack.net/ServiceStack.Hello/服務堆棧/ MVC:「AppHostBase.Instance已被設置」的錯誤 - 但不明白爲什麼/如何防止

我的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已經設置

周圍的Googling此提供任何幫助,除了源代碼在http://code.google.com/p/servicestack/source/browse/trunk/Common/ServiceStack.Common/ServiceStack.WebHost.Endpoints/AppHostBase.cs?r=1322

看着這個,不知何故,實例正在設置。但是如何?

這可能是什麼原因造成的?

回答

16

如果您已經通過的NuGet ServiceStack.Host.Mvc項目它自動爲您內創建APPHOST類安裝ServiceStack:

App_Start/ServiceStackFramework.cs 

你的榜樣看起來你可能已添加你自己的APPHOST爲好。所以如果你刪除這個AppHost並使用提供的應用程序,你不應該再有這個錯誤。

+0

在我的版本中,該文件仍在App_Start文件夾中,但它已被重命名爲AppHost.cs。我按照下面的教程:https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice – rball

+0

我現在有同樣的問題。沒有其他文件在任何地方。我在哪裏可以找到App_Start/ServiceStackFramework.cs。我完全按照教程中的內容來實現它。我最近更新了Xamarin Studio並使用NuGet工具來更新軟件包。然後它停止在我們的單聲道堆棧上工作,在我的Windows機器上正常工作。 –

2

我重命名我的項目後發生了錯誤。確保你進入bin文件夾並刪除所有dll,以防預先重命名的項目dll中的舊文件仍然存在!

相關問題