2013-02-27 206 views
15

में संक्षिप्तसंकलन त्रुटि CS0016: आउटपुट फ़ाइल नहीं लिखा जा सका

जब मैं अपने वेबसाइट ब्राउज़ करने का प्रयास, मैं निम्न त्रुटि संदेश मिलता है:

CS0016: आउटपुट फ़ाइल नहीं लिखा जा सका 'c: \ Microsoft.NET \ Framework64 \ v2.0.50727 \ अस्थायी \ Windows ASP.NET Files \ www \ xxx \ yyy \ zzz \ abdll' - 'निर्देशिका नाम अमान्य है'

विस्तार में

मैं अपने विकास पीसी पर दो वेब साइटों (काल्पनिक नाम) है:

  • Web2 - यह एक AppPool कि v2 के पते में .NET 3.5 और रन का उपयोग कर ASP.NET में लिखा है। 0 .NET ढांचे और एक एकीकृत मोड में चलाता है। यह विजुअल स्टूडियो 2010
  • वेब 4 - यह एएसपी.NET में .NET 4.5 का उपयोग करके लिखा गया है और एक ऐपपूल में चलता है जो v4.0 .NET ढांचे को संबोधित करता है और एक एकीकृत मोड में चलता है। यह हाल ही में दृश्य स्टूडियो 2012.

का उपयोग कर विकसित किया गया है, मैं VS2012 में पर Web4 लगभग लगातार काम कर रहा है और यह काम करता ठीक है, तथापि दूसरे दिन मैं Web2 भागने की कोशिश की और अपवाद के ऊपर प्रदर्शित मिला है।

विचित्र रूप से, पथ का हिस्सा (जिसे मैंने अक्षर "zzz" के साथ ऊपर ले लिया है) एक जर्मन भाषा पथ को इंगित करता है, क्योंकि यह "\ de-DE \" है - मैं जर्मन में परिचालन नहीं कर रहा हूं, इसलिए मैं यह नहीं पता कि यह विचार कहां से मिला।

एक चीज जो लगभग निश्चित रूप से अन-संबंधित है, लेकिन किसी अज्ञात कारण के लिए मुझे लगता है कि यह उल्लेख करना महत्वपूर्ण है: मैं इस समस्या को पहली बार प्रकट होने से पहले विजुअल स्टूडियो 2012 में प्रदर्शन विश्लेषण उपकरण का उपयोग कर रहा था और मुझे नहीं पता अगर यह मेरे कंप्यूटर में कुछ बदलाव हो सकता है ... ??

का प्रयास किया गया फिक्स

इंटरनेट पर इस बारे में काफी कुछ धागे हैं; कुछ धागे सफलता में समाप्त होते हैं जहां फ़ाइल एक्सेस अनुमतियों को बदल दिया गया है जबकि अन्य कुछ हद तक सुस्त ध्वनि नोट पर समाप्त होते हैं ... मैं अपने पीसी पर सभी प्रासंगिक ध्वनि निर्देशिकाओं पर एनटीएफएस अनुमतियों की तुलना करने की प्रक्रिया को पार कर गया हूं जिनके साथ एक सहयोगी मशीन यह अभी भी काम कर रहा है। दुर्भाग्यवश, वहां कोई खुशी नहीं थी।

मैं भी अनइंस्टॉल करने वाले asp.net 2.0 और का उपयोग कर फिर से स्थापित यह है:

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u 
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -ir 

और फिर, कोई खुशी वहाँ या तो किया जा करने के लिए।

मेरा वेब 4 अप्रभावित चल रहा है।

इसके अलावा एफवाईआई: Win7 x64 पर आईआईएस 7.5 का उपयोग करना।

अब मैं सफलता की एक वर्तमान स्थिति में निराशा की वर्तमान स्थिति को बदलने की उम्मीद में इस व्यापक दर्शकों के लिए बदल रहा हूं।

सभी को धन्यवाद

Griff

+0

तो आपने यह सुनिश्चित कर लिया है कि अस्थायी एएसपी.नेट फ़ाइलें और सी: \ विंडोज \ temp फ़ोल्डर्स में आईआईएस_आईयूआरएस और नेटवर्क्स सेवा उपयोगकर्ता पूर्ण नियंत्रण अनुमति वाले हैं? –

+1

वे मेरे सहयोगियों के समान थे ... ** अस्थायी एएसपी.नेट फ़ाइलें **: IIS_IUSRS संशोधित + विशेष अनुमतियां थीं; नेटवर्क सेवा का उल्लेख नहीं किया गया था। ** विंडोज टेम्प **: IIS_IUSRS के पास विशेष अनुमतियां थीं; नेटवर्क सेवा में संशोधन किया गया था। मैंने उन्हें बदल दिया ताकि दोनों के पास पूर्ण नियंत्रण हो और IISRESET किया। बिल्कुल वही त्रुटि संदेश। – DrGriff

+0

एक चीज का परीक्षण नहीं किया गया - हमारे पास एक नई एंटी-वायरस सेवा है जिसे मैं बंद नहीं कर सकता (पॉलिसी के कारण सेवा को रोक नहीं सकता)। क्या यह किसी भी तरह जिम्मेदार हो सकता है? जैसा कि पहले उल्लेख किया गया है, यह .NET 4 का उपयोग करके ऐपपूल के तहत चल रही मेरी वेबसाइटों को प्रभावित नहीं कर रहा है, केवल .NET 2 का उपयोग करने वाले। – DrGriff

उत्तर

9

जवाब ProcMon उपयोग करके मिली:

http://technet.microsoft.com/en-us/sysinternals/bb896645

अस्थायी asp.net फ़ाइलें पहले उपयोगकर्ता के अस्थायी फ़ोल्डर में बनाया है और कर रहे हैं फिर इस फ़ोल्डर में चले गए। कुछ अभी तक अज्ञात कारणों के लिए, मेरी वेब साइट (.NET 2 AppPool) के लिए संकलन अब मेरे वेब 4 (.NET 4 AppPool) साइट के समान फ़ोल्डर का उपयोग करता है।

मैंने "एक्सेस अस्वीकृत" के लिए सभी परिणामों की पहचान करने के लिए ProcMon का उपयोग किया और IIS_IUSRS समूह लिखने की अनुमतियां दी (और एक मामले में - सी: \ उपयोगकर्ता \ ASP.NET V4.0 एकीकृत - अनुमतियां संशोधित करें)।

मुझे नहीं पता कि संकलन "गलत" फ़ोल्डर्स का उपयोग क्यों कर रहा है और मुझे संदेह है कि मैंने कुछ मामलों में अनुमतियों को अधिक बढ़ाया है, लेकिन अभी यह काम कर रहा है।

+0

यह मुझे चक्कर आ रहा था। मैंने इस समस्या के बारे में जो कुछ भी पाया है, मैंने काफी कुछ करने की कोशिश की है। मैंने अपने अस्थायी चर (temp/tmp पर्यावरण चर) को उपयोगकर्ता फ़ोल्डर की ओर इशारा किया, इसलिए उन्हें एक वैश्विक फ़ोल्डर में दोबारा मैप किया गया, जिसे मैंने अनुमतियां जोड़ दीं। कोई भाग्य नहीं। आधे दिन बर्बाद होने के बाद ही मुझे यह मिला और इसे एक आखिरी शॉट दिया। धन्यवाद! – Ben

+0

बहुत बहुत धन्यवाद, ProcMon एक जीवन बचतकर्ता है – mimo

+0

ProcMon मुझे सीधे बाहर कर दिया। मैंने कुछ जगह खाली करने के लिए "सी: \ विंडोज \ टेम्प" को हटा दिया और फिर से बनाया, जिसने फ़ोल्डर पर सुरक्षा को मिटा दिया। भले ही ऐप "सी: \ विंडोज \ .. \ अस्थायी एएसपी.नेट फाइलों" के बारे में शिकायत कर रहा था, जो वास्तव में मुद्दा नहीं था। – NTDLS

39

आईआईएस प्रबंधक में, एप्लिकेशन पूल की उन्नत सेटिंग्स में, सुनिश्चित करें कि "प्रक्रिया मॉडल> ​​लोड उपयोगकर्ता प्रोफ़ाइल" को "सत्य" पर सेट किया गया है।

मुझे यह वही समस्या थी। मैंने अनुमतियों को बदलने, एंटी-वायरस को अक्षम करने, एक नया ऐप पूल बनाने और .NET को पुनर्स्थापित करने का प्रयास किया। मैंने अभी भी एक "डिफ़ॉल्ट.aspx" पृष्ठ के साथ एक नई साइट बनाई है और उस साइट को देखने का प्रयास किया है। यहां तक ​​कि उस साइट में संकलन त्रुटि भी थी। अंत में, मैंने देखा कि मेरे ऐप पूल (स्वच्छ परीक्षण साइट और मुख्य साइट) में लोड उपयोगकर्ता प्रोफ़ाइल सेटिंग के लिए गैर-डिफ़ॉल्ट मान "गलत" था। मैंने इसे वापस सही पर सेट किया और मुद्दा दूर चला गया।

+6

बिंगो !!!!!!!!!! –

+2

यह मुझे एक कोरोनरी बचाया। घंटे के लिए Google ब्राउज़ करने के बाद –

+0

, उत्तर! धन्यवाद! – RASG

4

मामले में उपरोक्त प्रश्नों के उत्तर के लिए यह ठीक नहीं हुआ, अपने वातावरण चर (कम्प्यूटर पर राइट क्लिक करें की जाँच -> गुण -> उन्नत सिस्टम सेटिंग्स -> उन्नत टैब -> पर्यावरण चर

सुनिश्चित करें अस्थायी चर सभी आवश्यक अनुमतियों वाले फ़ोल्डर को इंगित कर रहे हैं। (नेटवर्क सेवा, आईआईएस_आईयूएसआरएस के लिए पूर्ण पहुंच)

नोट: शीर्ष पर केवल दो चरों की जांच न करें, सिस्टम चर के अंतर्गत स्क्रॉल मेनू के अंदर देखें। आप वहां भी कॉन्फ़िगर किए गए वेरिएबल्स मिल सकते हैं।

+0

धन्यवाद @ जॉन स्मिथ यह मेरे लिए मुद्दा था। ड्राइव्स जो इस पथ की ओर इशारा करते हैं अब रीबूट पर मौजूद नहीं हैं। –

3

यह कारण नहीं हो सकता है, लेकिन यह त्रुटि सेंट इंस्ट्रुमेंटेशन विधि के साथ वीएस 2010 प्रदर्शन विज़ार्ड चलाने की कोशिश करने के बाद मेरे लिए प्रतीत होता है।

मेरे DEV पर्यावरण में एक त्वरित सुधार: ऐप के एप्लिकेशन पूल की पहचान स्थानीय सिस्टम में बदल दी गई।

+0

धन्यवाद, यह मेरे ऐप पूल उपयोगकर्ता की पहचान के साथ एक समस्या थी। – Gilles