वहाँ यह करने के लिए एक रास्ता है ...प्रोग्राम सेट InstanceContextMode
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
... प्रोग्राम के रूप में?
कारण यह है कि मैं अपनी सेवा के एकीकरण में अपनी सेवा का परीक्षण करते समय सीधे अपने स्वयं के होस्टिंग सहायक वर्ग में अपनी सेवा के उदाहरण में गुजरना चाहता हूं।
मैं अपनी सभी वस्तुओं को बनाने के लिए कैसल विंडसर का उपयोग कर रहा हूं, जो परीक्षण वेबसाइट का उपयोग करते समय ठीक काम करता है। लेकिन मैं निम्नलिखित त्रुटि मिलती है जब मैं अपने HttpWebService सहायक वर्ग इस्तेमाल करने की कोशिश ...
System.InvalidOperationException was unhandled by user code
Message=In order to use one of the ServiceHost constructors that takes a service instance, the InstanceContextMode of the service must be set to InstanceContextMode.Single. This can be configured via the ServiceBehaviorAttribute. Otherwise, please consider using the ServiceHost constructors that take a Type argument.
Source=System.ServiceModel
यह मेरा सहायक वर्ग के निर्माता है ...
public HttpWebService(string baseUri, string acceptType, TApi serviceInstance = null)
{
_baseUri = baseUri;
_acceptType = acceptType.ToLower();
_host = serviceInstance == null
? new HttpServiceHost(typeof (TApi), baseUri)
: new HttpServiceHost(serviceInstance, baseUri);
_host.Open();
_client = new HttpClient();
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_acceptType));
}
तो, मैं प्रोग्राम के रूप में स्थापित करने की आवश्यकता InstanceContextMode
जब "एकीकरण परीक्षण मोड" में, यानी - मेरे सहायक वर्ग में।
मुझे लगता है कि मैं इस तरह से कुछ करने की जरूरत है ...
if (serviceInstance != null)
{
_host = new HttpServiceHost(serviceInstance, baseUri);
var whatDoIDoNow = null;
_host.Description.Behaviors.Add(whatDoIDoNow);
}
किसी भी मदद/मार्गदर्शन महान के रूप में मैं वास्तव में इस पर अटक कर रहा हूँ होगा।
उत्तर पढ़ने के लिए आसान होगा अगर यह फिर से पूर्ण कोड के बजाय समाधान को दूषित करेगा। – Offler