ConfigSource फ़ाइल 'connection.config' का उपयोग अभिभावक में भी किया जाता है, इसकी अनुमति नहीं है।


9

सवाल:

मैं निम्नलिखित स्थिति का सामना करता हूं:

ASP.NET .NET 4.0 वेब-एप्लिकेशन को "vmsomething" मशीन पर तैनात किया गया है।

IIS 7.5 पर चलने वाला वेब-एप्लिकेशन vmsomething पर d: \ webs \ myapplication में रहता है।

एप्लिकेशन की कॉन्फ़िगरेशन फ़ाइलें:

connections.config

<?xml version="1.0"?>
<connectionStrings>
  <remove name="server"/>
  <add name="server" connectionString="Data Source=OUR_DB_Server;Initial Catalog=MY_INITIAL_CATALOG;Persist Security Info=False;User Id=OUR_DB_User;Password=OUR_TOP_SECRET_PASSWORD;MultipleActiveResultSets=False;Packet Size=4096;Application Name=&quot;MyApplication&quot;" providerName="System.Data.SqlClient"/>
</connectionStrings>

web.config:

<?xml version="1.0"?>
<configuration>

  <connectionStrings configSource="connections.config"/>

  <system.web>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
    <compilation strict="true" explicit="true">
      <assemblies>
        <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
    </compilation>
    <authentication mode="Windows"/>
    <pages>
      <namespaces>
        <clear/>
        <add namespace="System"/>
      </namespaces>
    </pages>
    <customErrors mode="Off">
      <error statusCode="404" redirect="~/w8/index.html"/>
    </customErrors>
    <globalization uiCulture="de" culture="de-CH" requestEncoding="UTF-8" responseEncoding="UTF-8"/>
    <httpRuntime maxRequestLength="2048000" executionTimeout="86400"/>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
</configuration>

फिर एक दो तरीकों से आवेदन का उपयोग कर सकता है:
विधि एक: http://vmsomething.com
विधि दो: http://vmsomething.com/my_application_virtdir
(बिना .com, स्थानीय लिंक नहीं जोड़ा जा सकता)।

अब मैं http://vmsomething.com पर आवेदन को ठीक खोल सकता हूँ ।
अगर मैं http://vmsomething.com/my_application_virtdir पर एप्लिकेशन खोलने का प्रयास करता हूं , तो मुझे यह त्रुटि मिलती है:

विन्यास त्रुटि

मैं सर्वर का व्यवस्थापक नहीं हूं, और मुझे नहीं पता कि उसने इसे कैसे कॉन्फ़िगर किया।
अब मेरे सवाल पर:

  • इस त्रुटि का क्या कारण है?
  • इसे कैसे जोड़ेंगे ?

जवाबों:


9

कारण यह है कि आपके पास एक ही भौतिक फ़ोल्डर पर लक्षित दो वेब साइटें हैं। और web.config में एक विरासत मौजूद है ।

http://vmsomethingमाता-पिता है और http://vmsomething/my_application_virtdirइसका बच्चा है। बच्चे web.config को उसके माता-पिता से सभी तत्व विरासत में मिलते हैं। और web.config आमतौर पर ऐसे परिदृश्य में काम करने के लिए डिज़ाइन नहीं किया गया है। आप बहुत सारे सिरदर्द प्राप्त कर सकते हैं जब नगेट से स्थापित अन्य उपयोगिताओं आपके web.config को संशोधित करने का प्रयास करेंगी।

यदि आप अपनी वेबसाइट तक पहुंचना चाहते हैं, http://vmsomething/my_application_virtdirतो मुझे लगता है कि सबसे आसान समाधान http://vmsomethingकुछ अलग करने के लिए भौतिक पथ को बदलना होगा ।

यदि आप यह परीक्षण करना चाहते हैं कि वायरटिर को निर्दिष्ट किए बिना आपकी वेबसाइट कैसे काम करती है तो आप IIS में एक अलग वेबसाइट को कॉन्फ़िगर कर सकते हैं (डिफ़ॉल्ट वेब साइट नहीं) और इसे उसी भौतिक पथ पर लक्षित करें। फिर आप एक ही समय में तैनाती के दोनों तरीकों का परीक्षण करने में सक्षम होंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.