2009-02-19 12 views
7

में कॉलर का होस्टनाम प्राप्त करना मैं एक मौजूदा वेब सेवा को डब्लूसीएफ सेवा के साथ बदल रहा हूं और माइग्रेशन के पहले चरण के रूप में मैं मूल एचटीपी बाइंडिंग के साथ एक एंडपॉइंट का खुलासा करने जा रहा हूं जब तक कि क्लाइंट को वर्ष में बाद में अपग्रेड नहीं किया जाता।डब्ल्यूसीएफ

योजना विंडोज़ सेवा के साथ नई डब्ल्यूसीएफ सेवा की मेजबानी करना है (सेवा केवल इंट्रानेट के भीतर से ही बुलाई जाएगी, इसलिए HTTP के लिए कोई वास्तविक आवश्यकता नहीं है), लेकिन मूल HTTP और नेट टीसीपी एंडपॉइंट्स दोनों को उजागर करना ताकि प्रवास चरणों में हो सकता है।

हालांकि, मुझे अपने डब्ल्यूसीएफ सेवा में कॉलर का होस्टनाम प्राप्त करने में कुछ परेशानी हो रही है, वर्तमान होस्ट सेवा कोड को देखकर यह होस्ट नाम प्राप्त करने के लिए Context.Request.UserHostName का उपयोग कर रहा है। मैंने कॉलर का उपयोगकर्ता नाम और आईपी पता प्राप्त करने में कामयाब रहा है लेकिन पर्यावरण में सभी संबंधित अनुमति/सुरक्षा सेवाएं मेजबाननाम का उपयोग आईपी के विपरीत करती हैं, तो क्या मेरे लिए सेवा सेवा के अंदर होस्टनाम प्राप्त करने का कोई तरीका है?

पीएस मैं clientCredientialType आप IIS में की मेजबानी नहीं कर रहे हैं के बाद से विंडोज

उत्तर

10

करने के लिए सेट के साथ TransportCredentialOnly को सुरक्षा मोड सेट है, तो आप ASP.NET compatibility mode उपयोग नहीं कर सकते HttpContext जो आम तौर पर एक ASP.NET प्रक्रिया में मौजूद हो सकता है के लिए उपयोग मिलता है।

इसके बजाय, आप System.Net namespace में Dns class पर GetHostEntry method का उपयोग IPHostEntry instance जो IP पते कि आप प्राप्त कर रहे हैं के प्रचलित नाम (डीएनएस नाम) शामिल होंगे प्राप्त करने के लिए कर सकते हैं।