2012-02-10 8 views
5

मेरे पास एक asp.net एप्लिकेशन है जिसके लिए मशीन ठीक से काम करने के लिए मशीन.कॉन्फिग फ़ाइल के कुछ संपादन की आवश्यकता है। मेरी विकास मशीन (चल रही विंडोज़ xp) पर, मैंने स्थान पर machine.config फ़ाइल संपादित की: "सी: \ विन्डोज़ \ माइक्रोसॉफ्ट.नेट \ फ्रेमवर्क \ v2.0.50727"सर्वर पर कौन सा machine.config फ़ाइल मेरा समाधान है?

यह कोड मैंने संशोधित कोड की रेखा है, संशोधनों (उपयोगकर्ता/पास जोड़ने) के साथ:

<processModel autoConfig="true" userName="SYSTEM" password="AutoGenerate"> 

सर्वर पर (Windows Server 2003) मैं एक ही स्थान पर एक ही फाइल के लिए एक ही परिवर्तन किए। हालांकि, जब मैं समाधान को डीबग करता हूं, तो यह ठीक से काम नहीं करता है (कुछ भी नहीं होता है और यह समय समाप्त होता है, कॉन्फ़िगरेशन फ़ाइल में इन परिवर्तनों को करने से पहले मेरे विकास मशीन पर एक ही समस्या थी)।

मैं इस तथ्य पर आ गया हूं कि मेरा एप्लिकेशन मशीन.कॉन्फिग फ़ाइल का उपयोग मेरी मशीन और सर्वर दोनों पर एक ही स्थान पर नहीं कर रहा है। इसकी पुष्टि करने के लिए, मैंने उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइलों में उपयोगकर्ता नाम और पासवर्ड के अंत में यादृच्छिक संख्याएं जोड़ दीं। मेरी मशीन पर, एप्लिकेशन ऐसा करने के बाद भी नहीं चलता है। सर्वर पर, यादृच्छिक संख्या जोड़े जाने से पहले यह उसी तरह से चलाता है और गलती करता है।

मेरा प्रश्न, संक्षेप में, मैं यह कैसे पता लगा सकता हूं कि सर्वर क्या मशीन.कॉन्फिग फ़ाइल वास्तव में उपयोग कर रहा है और/या मैं इसे निर्दिष्ट स्थान पर किसी का उपयोग करने के लिए कैसे सेट कर सकता हूं?

उत्तर

12

यह संभव है कि अपने सर्वर एक 64-बिट सर्वर, उस में हो जाएगा जिसका मतलब है कि है:

C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727

64-बिट रनटाइम एक अलग मशीन.कॉन्फिग का उपयोग करता है। बुनियादी नियम इस प्रकार हैं:

  1. ASP.NET 1.x %WINDIR%\Microsoft.NET\Framework\v1.1.4322
  2. ASP.NET का उपयोग करता है 2.0/3.5 x86 का उपयोग करता %WINDIR%\Microsoft.NET\Framework\v2.0.50727
  3. ASP.NET 2.0/3.5 x64 का उपयोग करता %WINDIR%\Microsoft.NET\Framework64\v2.0.50727
  4. ASP.NET 4.0/4.5.x 86 %WINDIR%\Microsoft.NET\Framework\v4.0.30319
  5. ASP.NET 4.0/4.5.x 64 %WINDIR%\Microsoft.NET\Framework64\v4.0.30319
  6. का उपयोग करता ASP.NET 5.0 पूर्ण CLR का उपयोग कर के लिए उपयोग करता है, यह टी के बाद से ASP.NET 4.0 स्थानों के रूप में ही होगा वह .NET Framework 4.6 4.5 के प्रतिस्थापन में एक बूंद है। यदि CoreCLR पर ASP.NET 5.0 चल रहा है, तो मशीन.कॉन्फिग फ़ाइल की कोई अवधारणा नहीं है।

ASP.NET का कौन सा संस्करण का उपयोग अपने ASP.NET टैब पर निर्भर करता है (IIS 6) या AppPool (आईआईएस 7+)

64 बनाम 86 मेटाडाटा आईआईएस 6 के लिए W3SVC/AppPools/Enable32BitAppOnWin64 स्थापित करने पर निर्भर करता है, या आईआईएस 7 में ऐपपूल 7.

+0

दोनों मशीनें 32-बिट हैं, मैंने अभी इसकी पुष्टि की है। – turbo

+6

@turbo मुझे लगता है कि किसी भी चीज़ के लिए +1 मुझे लगता है कि आप कोड 'ConfigurationManager.OpenMachine कॉन्फ़िगरेशन() फ़ाइल फ़ाइल का उपयोग कर सकते हैं यह पता लगाने के लिए कि यह मशीन.कॉन्फिग की तलाश में है। आपको 'सिस्टम। कॉन्फ़िगरेशन' असेंबली का संदर्भ देना होगा। – vcsjones

+0

एचएम, यह दोनों मशीनों पर एक ही स्थान के रूप में दिखाता है। मुझे लगता है कि मेरा अनुमान गलत था। शायद मेरी परियोजना किसी भी तरह से अद्यतन संस्करण का संदर्भ नहीं दे रही है (मुझे पता है कि आपको आईआईएस व्यवस्थापक सेवा को पुनरारंभ करना है, और मेरे पास है)। आपने मेरा अनुमान गलत साबित कर दिया, लेकिन मेरे प्रश्न का उत्तर दिया। आपकी सहायता के लिए धन्यवाद. – turbo

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