2010-02-25 10 views
11

हमारे वेब संदर्भ को उस वेबसाइट के web.config में परिभाषित नहीं किया गया है जो इसे उपभोग करता है। मैंने पाया कि "वेब संदर्भ" फ़ोल्डर में "Reference.map" नामक एक कॉन्फ़िगरेशन फ़ाइल है जो संपादन योग्य दिखती है, लेकिन जब मैं उन्हें संपादित करता हूं तो कुछ भी नहीं होता है। मैंने यह भी देखने के लिए फ़ोल्डर में WSDL फ़ाइल का नाम बदल दिया है कि यह एक नया प्राप्त करेगा या नहीं। यह नहीं था।मैं .NET वेबसाइट के उत्पादन में वेब संदर्भ कैसे बदलूं?

क्या मुझे संदर्भित वेब सेवा के यूआरएल को बदलने के लिए सिर्फ एक बिल्ड करना है?

उत्तर

19

आप एक वेब संदर्भ को स्थिर या गतिशील यूआरएल के रूप में चिह्नित कर सकते हैं। यदि आप गतिशील चुनते हैं तो यह URL.config पर यूआरएल जोड़ देगा जिसे आप अपने उत्पादन वातावरण में बदल सकते हैं।

यदि इसे स्थैतिक के रूप में चिह्नित किया गया है तो इसे बाइनरी में संकलित किया गया है और पुनर्निर्माण के बिना बदला जा सकता है।

यदि यह पहले से ही गतिशील है तो कोड गतिशील यूआरएल की तलाश करता है और फिर यदि यह नहीं मिल पाता है तो यह डिफ़ॉल्ट मूल का उपयोग करता है।

<applicationSettings> 
    <MySystem.Properties.Settings> 
     <setting name="MySystem_MyService" serializeAs="String"> 
      <value>http://mysystem/service.asmx</value> 
     </setting> 
    </MySystem.Properties.Settings> 
</applicationSettings> 
+0

मैं के बाद महसूस किया इसलिए, आप बस जैसे वेब config में प्रवेश जोड़ सकते हैं इसे उत्तर के रूप में चिह्नित करना कि URL को गतिशील के रूप में चिह्नित किया गया है, लेकिन यह अभी भी वेब कॉन्फ़िगरेशन में नहीं है। कोई अन्य विचार? – JoshBaltzell

+0

कुछ और जानकारी जोड़ दी है, मूल रूप से आप बस web.config में लाइनें जोड़ते हैं। इसका सटीक वाक्यविन्यास आपके वेब संदर्भ पर निर्भर करता है। –

+0

उसमें जोड़ने के लिए, वेब संदर्भ को हटाने और फिर से जोड़ने से शायद आपके लिए आपके web.config को पुनर्निर्माण किया जाएगा। सुनिश्चित करें कि यह केवल या कुछ भी नहीं पढ़ा जाता है। –

0

कम्पैक्ट फ्रेमवर्क पर आप WebService की अपनी कक्षा पर कॉन्फ़िग फ़ाइल को पढ़ने के लिए:

public partial class YourService : System.Web.Services.Protocols.SoapHttpClientProtocol { 

    /// <remarks/> 
    public HandTerminalService() { 
     string appSettings = string.Concat(Assembly.GetExecutingAssembly().GetName().CodeBase, ".config"); 
     XmlDocument xmlDocument = new XmlDocument(); 
     xmlDocument.Load(appSettings); 
     XmlNode xmlNode = xmlDocument.SelectSingleNode("//configuration/appSettings/add[@key = 'Proxy.YourServiceService']"); 
     if (xmlNode.Attributes["value"].Value != null) 
     { 
      this.Url = string.Concat(xmlNode.Attributes["value"].Value, ""); 
     } else 
     { 
      this.Url = "http://<IP_or_DNS-Name>:<Port>/YourService.asmx"; 
     } 
    } 
संबंधित मुद्दे