मैं इस प्रकार OperationContext बाहर जाने वाले संदेश शीर्ष लेख के लिए एक api कुंजी संलग्न करने के लिए कोशिश कर रहा हूँ:जोड़ना और प्राप्त कर रहा है डेटा
public static void AddApikeyToHeader(string apikey, IContextChannel channel, string address)
{
using (OperationContextScope scope = new OperationContextScope(channel))
{
MessageHeader header = MessageHeader.CreateHeader("apikey", address, apikey);
OperationContext.Current.OutgoingMessageHeaders.Add(header);
}
}
लेकिन तब मुझे पता नहीं कैसे सर्वर साइड पर हैडर को पुनः प्राप्त करने के लिए है । मैं एक सेवा प्राधिकरण प्रबंधक का उपयोग कर रहा हूँ और मैं वर्तमान ऑपरेटिंग संदर्भ मिलता है और इस तरह हेडर प्राप्त करने का प्रयास:
public string GetApiKey(OperationContext operationContext)
{
var request = operationContext.RequestContext.RequestMessage;
var prop = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
return prop.Headers["apikey"];
}
लेकिन कोई apikey हैडर वहाँ जुड़ी हुई है। साथ ही, जब मैं ऑपरेशन का निरीक्षण करता हूं तो डिबगिंग पर मैं कहीं भी अपने apikey शीर्षलेख को देखने के लिए प्रतीत नहीं कर सकता। क्या कोई देख सकता है कि मैं कहां गलत हो रहा हूं?
धन्यवाद! मुझे पता चला कि मैं जिस समस्या का सामना कर रहा था, क्योंकि मैं संदर्भ क्षेत्र के जीवनकाल के दौरान अपनी सेवा कॉल नहीं कर रहा था! – Dimitar
एक सेवा चैनल क्या है? IMyServiceChannel? – PositiveGuy
IMyServiceChannel क्लाइंट और सर्वर के बीच संचार चैनल इंटरफ़ेस है। –