मैं कैसे विंडोज Azure आप एक आवेदन के विन्यास भिन्न हो जब आप कोई चारा नहीं web.config (या app.config) में विन्यास सेटिंग्स धारण करने के लिए प्राप्त हो जाता है नहीं दिख रहा।Azure भूमिका विन्यास प्रबंधन
उदाहरण के लिए ...
अक्सर परियोजनाओं कि web.config का गहन उपयोग करता एक 3 पार्टी पुस्तकालय का उपयोग करना होगा। Web.config के उपयोग में कनेक्शन स्ट्रिंग, ऐप सेटिंग्स या कस्टम कॉन्फ़िगरेशन अनुभाग शामिल हो सकते हैं। इसका एक अच्छा उदाहरण ELMAH है।
मुझे अद्यतन करने के लिए या अलग-अलग हो दूरदराज के उपयोग सक्षम है या नहीं के लिए कोई तरीका नहीं है:
<configuration> <configSections> <sectionGroup name="elmah"> <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" /> <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> </sectionGroup> </configSections> <connectionStrings> <add name="MyElmahDatabase" providerName="System.Data.SqlClient" connectionString="Server=tcp:myServer.database.windows.net,1433;Database=myDB;User [email protected];Password=password;Trusted_Connection=False;Encrypt=True;Connection Timeout=30" /> </connectionStrings> <elmah> <security allowRemoteAccess="1" /> <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="MyElmahDatabase" /> </elmah> </configuration>
यहाँ समस्याओं के एक जोड़े हैं: ELMAH के लिए एक web.config फ़ाइल ऐसा दिखाई दे सकता सेवा विन्यास के बीच।
मुझे अद्यतन करने के लिए या सेवा विन्यास के बीच ELMAH कनेक्शन स्ट्रिंग अलग-अलग हो के लिए कोई तरीका नहीं है।
इसका कारण यह है web.config के रूप में .cspkg फाइल में है और ELMAH सेवा विन्यास सेटिंग्स (जो एक ही रास्ता मैं सेवा विन्यास के बीच विन्यास सेटिंग्स भिन्न हो सकते हैं कर रहे हैं) को देखने नहीं होगा पैक किया जाता है।
मैं कई अन्य उदाहरण के बारे में सोच सकते हैं, जहां यह एक समस्या है ...
- किसी भी डेटा का उपयोग चौखटे कि कनेक्शन तार खंड पर सीधे देखो।
- कोई भी कस्टम कॉन्फ़िगरेशन सेटिंग्स बनाने की आवश्यकता है।
... नाम सिर्फ दो करने के लिए।
क्या मुझे कुछ याद आ रहा है या यह विंडोज़ एज़ूर द्वारा प्रदान किए गए कॉन्फ़िगरेशन प्रबंधन में एक महत्वपूर्ण अंतर है?
संपादित
जवाब और नीचे टिप्पणी से, ऐसा लगता है कुछ इस तरह है कि अच्छी तरह से समर्थित नहीं है। मुझे लगता है कि विभिन्न कॉन्फ़िगरेशन प्रोफाइल का समर्थन करने के लिए एकाधिक समाधान निर्माण कॉन्फ़िगरेशन प्रबंधित करना बहुत कमजोर समाधान है। मुझे आवश्यक प्रत्येक कॉन्फ़िगरेशन प्रोफ़ाइल के समाधान को पुनर्निर्माण नहीं करना चाहिए (संभवतः कुछ ही होंगे)। संकलन विन्यास के बराबर नहीं है।
मैं अगर वहाँ के रूप में यह सिर्फ एक ज़िप फ़ाइल है .cspkg फ़ाइल को संशोधित करने के लिए एक तरीका था सोच रहा था। this दस्तावेज के अनुसार आप लिनक्स पर कर सकते हैं।
मैं .cspkg फ़ाइल में प्रकट को देखा है और यह इस तरह दिखता है:
<PackageManifest version="2">
<Encryption keytype="1" />
<Contents hashtype="1">
<Item name="MyApp.Web.UI_<GUID>.cssx" hash="AED69299C5F89E060876BC16BD3D6DE5130F6E62FFD2B752BAF293435339B7E2" uri="/MyApp.Web.UI_<GUID>.cssx" />
<Item name="MyApp.Web.Services_<GUID>.cssx" hash="7AC81AFF642E4345173C8470C32A41118A4E3CFD4185B82D0ADA44B71057192D" uri="/MyApp.Web.Services_<GUID>.cssx" />
<Item name="SMPackage_<GUID>.csmx" hash="B5E6B83B62AF64C7C11CAC1A394ABBF15D7DB7667A773C5284CE5BE95C5834E9" uri="/SMPackage_<GUID>.csmx" />
<Item name="SDPackage_<GUID>.csdx" hash="F34B7C02A551D82BAD96881E2DA9447D0014D49B47CCB3840475BDC575234A7D" uri="/SDPackage_<GUID>.csdx" />
<Item name="NamedStreamPackage_<GUID>.csnsx" hash="FA2B5829FF5D9B2D69DCDDB0E5BDEE6B8B0BC09FFBF37DAEEE41CF3F3F4D0132" uri="/NamedStreamPackage_<GUID>.csnsx" />
</Contents>
<NamedStreams>
<Stream name="RequiredFeatures/MyApp.Web.Services/1.0" />
<Stream name="RequiredFeatures/MyApp.Web.UI/1.0" />
<Stream name="SupportData/MyApp.Web.Services/1.0" />
<Stream name="SupportData/MyApp.Web.UI/1.0" />
</NamedStreams>
</PackageManifest>
दुर्भाग्य से, अगर मैं फिर से गणना अपरिवर्तित "MyApp.Web.UI_.cssx" के हैश फ़ाइल, मेरा हैश मैनिफेस्ट में से एक से अलग है।प्रकट से
हैश: AED69299C5F89E060876BC16BD3D6DE5130F6E62FFD2B752BAF293435339B7E2
मेरे परिकलित हैश: E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
ध्यान दें कि मैं अभी तक फाइल नहीं बदला है, तो हैश ही होना चाहिए।
यह सुझाव देता है कि मैं इसे गलत गणना कर रहा हूं।
class Program
{
static void Main(string[] args)
{
using (FileStream fs = new FileStream(args[0], FileMode.Open))
{
ComputeHash(new SHA256Managed(), fs);
}
}
private static void ComputeHash(HashAlgorithm hashAlgorithm, Stream stream)
{
byte[] hash = hashAlgorithm.ComputeHash(stream);
string hashString = BitConverter.ToString(hash);
Console.WriteLine(hashString.Replace("-", string.Empty));
Console.WriteLine();
}
}
ऊपर दस्तावेज़ीकरण लिंक, यह हैश फिर से गणना (लिनक्स पर वैसे भी) के लिए सीधा है पता चलता है: मेरे विधि इस प्रकार थी।
क्या किसी को पता है कि हैश की पुन: गणना कैसे करें?
आप अपने पैकेज के लिए किसी भी configurables के लिए फ़ाइलों .cscfg उपयोग कर सकते हैं डाइजेस्ट मिल सकती है। –
यह काम नहीं करेगा - ELMAH (और अन्य ढांचे) .cscfg में कॉन्फ़िगरेशन डेटा को नहीं देख पाएंगे। –
वैसे जहां तक मेरा ज्ञान जाता है, एज़ूर पैकेज के लिए कॉन्फ़िगरेशन की केवल संभावित विधि .cscfg फ़ाइलें है। ELMAH जैसे ढांचे के लिए आपको गतिशील रूप से कॉन्फ़िगरेशन बदलने जैसी वर्कअराउंड मिलनी पड़ सकती है। लेकिन मुझे लगता है कि स्टैक ओवरफ्लो पर एज़ूर के कई विशेषज्ञ हैं जिनके पास प्रस्ताव देने के लिए बेहतर जवाब हो सकता है। यह भी एक बहुत ही रोचक और महत्वपूर्ण सवाल है। –