2012-05-25 16 views
9

से कॉन्फिग मैं सी # कोड से पुनः लिखने के नियम को संशोधित करना चाहता हूं। यूआरएल रिवाइट नियम web.config फ़ाइल में रहता है। यूआरएल में यूआरएल रीवाइट नियम बदलें। कोड सी #

<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="partners"> 
      <match url="^partners$" /> 
      <action type="Rewrite" 
        url="partners.aspx" /> 
     </rule> 
     <rule name="news"> 
      <match url="^news$" /> 
      <action type="Rewrite" 
        url="news.aspx" /> 
     </rule> 
     <rule name="projects"> 
      <match url="^projects$" /> 
      <action type="Rewrite" 
        url="projects.aspx" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 

मैं पूर्व में बदलना चाहता हूं। <rule name="partners"> <match url="^partners$" /> से <rule name="partners"> <match url="^friendship/partners$" />,

मैं नोड नियम कैसे ढूंढ सकता हूं और "नया एक" से मिलान यूआरएल अपडेट कर सकता हूं जहां नाम = "सहयोगी" ;?

यह गतिशील यूआरएल पुनर्लेखन के लिए मेरा विचार है। यदि आपके पास है तो किसी अन्य तरीके के लिए धन्यवाद।

+1

आप उन नियमों को उसी वेब एप्लिकेशन से या किसी अन्य एप्लिकेशन के भीतर से संशोधित करना चाहते हैं? क्या आप जानते थे कि यदि आप web.config को संशोधित करते हैं तो एप्लिकेशन रीसायकल करेगा? –

+0

उसी एप्लिकेशन के भीतर ... आप कहते हैं कि यह असंभव है? धन्यवाद – levi

+0

क्या मैं किसी भी पेज_एवेंट पर Web.Config को कॉन्फ़िगर करने में सक्षम हूं? पूर्व। Page_Init()? – levi

उत्तर

1

मैं इस कोड के साथ मेरी web.config वेबसाइट में connectionstring के लिए मूल्य बदल:

हो सकता है इस उदाहरण आप मदद कर सकते हैं (बस द्वारा rules आदि .. कृपया मुझे अगर बता system.webServer और add द्वारा मूल्य connectionString बदल इसके लिए काम करता है आप

XmlDocument myXmlDocument = new XmlDocument(); 
myXmlDocument.Load("../myPath/web.config"); 
foreach (XmlNode node in myXmlDocument["configuration"]["connectionStrings"]) 
{ 
    if (node.Name == "add") 
    { 
     if (node.Attributes.GetNamedItem("name").Value == "SCI2ConnectionString") 
     { 
      node.Attributes.GetNamedItem("connectionString").Value = "new value"; 
     } 
    } 
} 
+1

यह उचित तरीका नहीं है क्योंकि जब भी आप अपनी web.config फ़ाइल को फिर से सहेजते हैं तो वेबसाइट डाउन हो जाएगी – levi

+1

हां इसका मतलब आपकी एप्लिकेशन वेबसाइट को मारना होगा। यह वेब साइट को हर बदलाव web.config माफ कर देगा। मैं जांचूंगा कि हमारे पास कोई अन्य समाधान है या नहीं ;-) –

+0

इस समाधान पर विचार करें। मेरा एक और सवाल: http://stackoverflow.com/questions/10812311/iis-url- गतिशील-rewriting-ways – levi

0

चरण 1: - डाउनलोड urlrewrite2.exe Here

चरण 2: - web.config

<system.webServer> 
    <rewrite> 
    <providers> 
     <provider name="FileMap" type="FileMapProvider, Microsoft.Web.Iis.Rewrite.Providers, Version=7.1.761.0, Culture=neutral, PublicKeyToken=0545b0627da60a5f"> 
     <settings> 
      <add key="FilePath" value="D:\j\branches\JuzBuzz\App_Data\rewriteurl.txt" /> 
      <add key="IgnoreCase" value="1" /> 
      <add key="Separator" value="," /> 
     </settings> 
     </provider> 
    </providers> 
    <rules> 
     <rule name="FileMapProviderTest" stopProcessing="true"> 
     <match url="(.*)" ignoreCase="false" /> 
     <conditions logicalGrouping="MatchAll"> 
      <add input="{FileMap:{R:1}}" pattern="(.+)" ignoreCase="false" /> 
     </conditions> 
     <action type="Rewrite" url="{C:1}" appendQueryString="false" /> 
     </rule> 
    </rules> 
    </rewrite> 
</system.webServer> 

में आप तर्क लिखने चरण 3: - रखो आप App_Code फ़ोल्डर या किसी अन्य जगह है जिसके लिए आप web.config में पता दे दिया है में फ़ाइल .txt, txt फ़ाइल

की तरह डेटा होगा

** प्रौद्योगिकी, विशेषज्ञ/खोज-expert.aspx? CatID = 1

परामर्श-व्यक्तिगत विकास, विशेषज्ञ/खोज-expert.aspx? CatID = 2 ** आदि * *

0

माइक्रोसॉफ्ट आप मदद करने के लिए उपलब्ध Microsoft.Web.Administration.dll है, लेकिन यह व्यवस्थापक अनुमतियों को निष्पादित करने की आवश्यकता है,

https://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration

यह एक WinForms आवेदन (जैसे आईआईएस प्रबंधक के रूप में) के लिए पर्याप्त रूप से उपयुक्त एक नियंत्रित करने के लिए है आईआईएस सर्वर, लेकिन अन्य प्रकार के अनुप्रयोगों में भी इस्तेमाल किया जा सकता है।

मेरे पास एक निजी परियोजना है जो एक कस्टम एमडब्ल्यूए कार्यान्वयन है जो कुछ गैर-प्रशासक मामलों के लिए काम करता है। यदि आप इसमें रूचि रखते हैं, तो मुझे बताएं।

संबंधित मुद्दे