सारांश में
आईज़ में आईआईएस में होस्ट किए जाने पर मैं स्थानीयहोस्ट पर डब्ल्यूसीएफ सेवा कैसे प्राप्त करूं? Azure मेरी वेबसाइट पर localhost या 127.0.0.1 बांध नहीं है।Azure पर स्थानीयहोस्ट पर डब्ल्यूसीएफ का उपयोग
विवरण
मैं एक ASP.Net आवेदन Azure पर होस्ट की है। मैंने एक एसएससी और कुछ वर्कफ़्लो जोड़े हैं जिन्हें मैं डब्ल्यूसीएफ के माध्यम से उपयोग करना चाहता हूं। मामलों को सरल रखने के लिए, मेरा वेब ऐप बस लोकहोस्ट पर सेवा को कॉल करता है, इसलिए मेरे पास web.config में इनके अंत बिंदु हैं;
<client>
<endpoint address="http://localhost:8080/Router.svc/Case" binding="basicHttpBinding" contract="NewOrbit.ExVerifier.Model.Workflow.Case.ICaseWorkflow" name="Case" />
<endpoint address="http://localhost:8080/Workflow/Case/Case_default1.xamlx" binding="basicHttpBinding" contract="*" name="Case_default1" />
</client>
यह मेरी स्थानीय मशीन पर ठीक काम करता है। समस्या यह है कि जब मैं इसे Azure में प्रकाशित करता हूं, आईआईएस में वेबसाइट को स्थानीयहोस्ट के लिए बाध्यकारी नहीं मिलता है, इसके बजाय बाइंडिंग हमेशा सर्वर के वास्तविक आईपी पते पर होती है। यह applicationHost.config में इस तरह लग रही समाप्त होता है:
<bindings>
<binding protocol="http" bindingInformation="10.61.90.44:80:" />
<binding protocol="https" bindingInformation="10.61.90.44:443:" />
<binding protocol="http" bindingInformation="10.61.90.44:8081:" />
</bindings>
तो, जैसे ही अपने वेब एप्लिकेशन (उस बात के लिए या 127.0.0.1) स्थानीय होस्ट पर सेवा को कॉल करने में विफल रहता है तो वह तुरंत कोशिश करता है। कहने की जरूरत नहीं है, अगर मैं सर्वर पर rdp और बाध्यकारी बदल तो सब ठीक है।
मुझे वास्तव में अजीब लगता है कि वहां कई उदाहरण हैं जहां लोग एज़ूर पर लोकहोस्ट पर डब्ल्यूसीएफ सेवाओं तक पहुंच रहे हैं, इसलिए मुझे पता नहीं चल रहा है कि ऐसा क्यों है। मैंने osFamily को 2 पर सेट किया है और इसे डीबग करने के लिए मैंने वेब प्रकाशन और रिमोट डेस्कटॉप एक्सेस सक्षम किया है, जो मुझे लगता है, सिद्धांत रूप में, गड़बड़ कर सकता है।
क्या मैं पहले से ही
- पर ध्यान दिया है मैं अंत बिंदु का पता मेरी कोड में कार्यावधि में वास्तविक पते के लिए स्थानीय होस्ट स्थानापन्न या गतिशील के रूप में जवाब में रॉन द्वारा वर्णित समाप्ति बिंदु बनाने के लिए पुनर्लेखन कर सकते हैं । दुर्भाग्य से मैं डब्ल्यूसीएफ रूटिंग सेवा का उपयोग कर रहा हूं ताकि मैं संस्करण वर्कफ़्लो कर सकूं। इसका मतलब है कि मेरा कोड राउटर एंडपॉइंट कहता है और डब्ल्यूसीएफ राउटर में बदले में वेब.कॉन्फिग में निर्दिष्ट एंडपॉइंट का उपयोग करके वास्तविक सेवा/वर्कफ़्लो को कॉल किया जाता है। मुझे रूटिंग सेवाओं एंडपॉइंट रिज़ॉल्यूशन पर नियंत्रण नहीं है, मुझे लगता है कि रूटिंग लॉजिक का एक पूरा सेट लिखना जो कि बहुत सारे काम लगता है, जब मैं चाहता हूं कि स्थानीयहोस्ट को कॉल करना है :)
- नाम का उपयोग करने के लिए स्विचिंग पाइप; हां, यह वर्कफ़्लोज़ के साथ कुछ अजीब मुद्दों का कारण बनता है, शायद डुप्लेक्सिंग के कारण, और मैं समय सीमा पर हूं इसलिए उस समय के निचले भाग तक पहुंचने के लिए समय नहीं मिला है।
कॉल करना चाहते हैं? – BozoJoe