यहाँ कोड की मेरी लाइन है और यह मेरे HttpConext.Current
WCF सेवा में HttpContext शून्य?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
यहाँ कोड की मेरी लाइन है और यह मेरे HttpConext.Current
WCF सेवा में HttpContext शून्य?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
यह सामान्य है पर त्रुटि फेंकता है। डब्ल्यूसीएफ वेब सेवा में कोई HTTP संदर्भ नहीं है। एक वेब सर्वर के अंदर एक डब्ल्यूसीएफ सेवा भी होस्ट नहीं की जा सकती है। आप कंसोल एप्लिकेशन के अंदर होस्ट कर सकते हैं। वहाँ एक चाल है कि आप ASP.NET Compatibility Mode सेट करने देता है:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
लेकिन यह कुछ है कि मैं तुम क्या कर की सिफारिश करेंगे नहीं है।
मैं इस बजाय करना होगा:
var postData = "username=" + HttpUtility.UrlEncode(USERNAME);
और क्योंकि मैं जहां इस कोड के साथ जा रहे हैं के बारे में 7 वीं भावना (एक दूरस्थ वेब सर्वर के लिए एक HTTP अनुरोध के रूप में यह भेजने) के लिए सीधे जाओ बिंदु:
using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ "username", USERNAME }
};
var result = client.UploadValues("http://foo.com", values);
}
के अंदर रखा गया कोड मैं अपनी स्थानीय मशीन पर इस सेवा का परीक्षण कर रहा हूं क्या कोई रास्ता नहीं है? –
@ एबू हमज़ा, इससे कोई फर्क नहीं पड़ता, कृपया डब्लूसीएफ सेवा के अंदर कोई एचटीपी कॉन्टेक्स्ट नहीं है। –
+1 याद दिलाने के लिए कि wcf हमेशा वेबसर्वर में नहीं है – Michel
आप वेब config में aspNetCompatibilityEnabled
ध्वज सेट कर सकते हैं HttpContext सक्षम करना चाहते हैं।
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
जहां इस कोड रखा गया है? एक डब्ल्यूसीएफ सेवा डेटा अनुबंध के अंदर? –
wcf service.svc.cs –