2012-01-21 19 views
9

क्यों रोकें/मैं अपने एमवीसी 3 प्रोजेक्ट में सर्विसस्टैक को कार्यान्वित करने की कोशिश कर रहा हूं, और ट्यूटोरियल का पालन कर रहा हूं: http://www.servicestack.net/ServiceStack.Hello/सर्विस स्टैक/एमवीसी: "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 रूप में अच्छी तरह जोड़ दिया हो। इसलिए यदि आप इस ऐपहोस्ट को हटाते हैं और प्रदत्त एक का उपयोग करते हैं तो आपको अब यह त्रुटि नहीं होनी चाहिए।

+0

मेरे संस्करण में, फ़ाइल अभी भी App_Start फ़ोल्डर में है, लेकिन इसका नाम बदलकर AppHost.cs कर दिया गया है। मैं यहां स्थित ट्यूटोरियल का अनुसरण कर रहा था: https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice – rball

+0

मुझे अब भी यही समस्या है। कहीं भी कोई अतिरिक्त फाइलें नहीं हैं। मुझे App_Start/ServiceStackFramework.cs कहां मिलेंगे। मैंने इसे ठीक तरह से कार्यान्वित किया है क्योंकि यह ट्यूटोरियल पर था। मैंने हाल ही में ज़ैमरिन स्टूडियो को अपडेट किया और पैकेज को अपडेट करने के लिए NuGet टूल का उपयोग किया। फिर यह हमारे मोनो स्टैक पर काम करना बंद कर दिया, मेरी विंडोज मशीन पर ठीक काम करता है। –

2

मेरे प्रोजेक्ट का नाम बदलने के बाद भी त्रुटि हुई। सुनिश्चित करें कि आप अपने बिन फ़ोल्डर में जाते हैं और सभी डीएलएस हटाते हैं, अगर पूर्व-नामित परियोजना डीएलएस के पुराने व्यक्ति अभी भी वहां हैं!