2009-02-06 19 views
22

जब मैं एक कस्टम बिल्ड स्क्रिप्ट का उपयोग कर एएसपीनेट साइट संकलित करने का प्रयास करता हूं तो मुझे निम्न त्रुटि मिलती है।एएसपी.NET वेबसाइट संकलित करते समय MSBuild त्रुटि

error ASPCONFIG: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. 

हालांकि विवरण विस्तार से है, लेकिन मुझे समझ में नहीं आता कि इसका क्या अर्थ है। मैंने इस वेबसाइट को होस्ट करने के लिए आईआईएस कॉन्फ़िगर नहीं किया है और मुझे नहीं लगता कि मैं Vista होम बेसिक वर्जन को चलाने में सक्षम हूं। तो वेबसाइट कस्टम स्क्रिप्ट का उपयोग करके नहीं बनाई जा सकती है? कृपया उत्तर दें क्योंकि मैं इस सुविधा का परीक्षण करना चाहता हूं।

+0

[allowDefinition = 'MachineToApplication' MSBuild त्रुटि] (http://stackoverflow.com/ के संभावित डुप्लिकेट प्रश्न/5271320/allowdefinition-machinetoapplication-msbuild-error) – Flexo

+0

मैं भी ओबीजे फ़ोल्डर को हटा रहा था जब तक कि मुझे एक बिल्ड स्क्रिप्ट के साथ कोई संघर्ष न हो, जिसकी आवश्यकता होती थी। कैच -22, मैंने ओबीजे फ़ोल्डर के स्थान को C: \ Temp \ BUILD में स्थानांतरित करने के लिए निम्न SO लिंक पर स्वीकृत उत्तर का उपयोग किया। आपको प्रति csproj फ़ाइल करना है, लेकिन यह एक अच्छा समाधान है। यहां लिंक है: http://stackoverflow.com/questions/261422/visualstudio-how-to-save-the-obj-folder-sewhereewhere-else –

उत्तर

4

यह संभावना है कि आपकी web.config फ़ाइल उस निर्देशिका में रखी गई है जो एप्लिकेशन की जड़ नहीं है। आईआईएस के सबसे संस्करण पर, आप एक आवेदन जड़ के लिए अपने वेब साइट पर किसी भी फ़ोल्डर में बदल सकते हैं:

  1. ओपन आईआईएस और उचित फ़ोल्डर
  2. फ़ोल्डर पर राइट क्लिक करें, करने के लिए नेविगेट चयन गुण
  3. के तहत आवेदन सेटिंग्स, और अनुप्रयोग नाम के पास, बनाएं
  4. लागू करें क्लिक करें और करीबी

इससे आपकी समस्या का समाधान नहीं होता है, वहाँ एक और हो सकता है विन्यास त्रुटि, या तो आईआईएस या आपके आवेदन के साथ।

0

आईआईएस में, ऐप के नीचे चलाए गए फ़ोल्डर पर जाएं, राइट क्लिक करें, गुणों पर जाएं। निर्देशिका टैब पर, "एप्लिकेशन सेटिंग्स" देखें। बनाएं बटन पर क्लिक करें।

48

मुझे यह वही सटीक समस्या थी और आखिर में एक दुष्ट वेब.कॉन्फिग को मेरे ओबीजे फ़ोल्डर में रखा गया था ... अपने आप को एक पक्ष बनाओ और web.config फ़ाइल के लिए सभी उप-निर्देशिकाओं में एक खोज करें। मैंने इसे हटा दिया और सब सामान्य हो गया।

+4

धन्यवाद, जिसने मेरे लिए समस्या हल की। ​​मेरे पास वही था मुसीबत। मैंने ऑब्जेक्ट \ डीबग फ़ोल्डर हटा दिया और यह फिर से काम किया। –

+4

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

+1

धन्यवाद! यह मुझे घंटों तक पागल कर रहा था। मेरा stray web.config/विचार फ़ोल्डर में था। * श्वास * – Patricia

15

obj फ़ोल्डर में दुष्ट वेब.कॉन्फिग फ़ाइल सबसे अधिक होने की संभावना है जब आप प्रकाशित वेब साइट करते हैं। तो प्रकाशित करने के बाद बस इसे साफ़ करें।

4

ऐसा होता है, तो बाद आभासी-निर्देशिका पहले से बनाई गई है निम्न करें:

वेब पर
  • राइट क्लिक करें।config
    • गुण
      • बिल्ड कार्रवाई: सामग्री
      • आउटपुट निर्देशिका में प्रतिलिपि: की नकल न करें
  • अगर तब्दील (सभी विन्यास पर लागू होते हैं)
    • गुण
      • बिल्ड कार्रवाई: कोई नहीं
      • आउटपुट निर्देशिका में प्रतिलिपि: की नकल न करें
+0

पहला विकल्प मेरे लिए ठीक काम करता है, भले ही मेरे पास वेब कॉन्फ़िगरेशन रूपांतरण हो। – Nekresh

+0

मैन, इस मुद्दे ने मुझे इतनी देर तक फिसल दिया। यह मुद्दा था! – FrankyBoy

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