2009-11-11 8 views
5

मुझे एक सी # एप्लिकेशन मिला है जिसे मैं एक वितरित नेटवर्क पर धक्का देने की कोशिश कर रहा हूं। एप्लिकेशन स्थानीय रूप से ठीक से काम करता है (लेकिन हमेशा के रूप में), लेकिन जब मैं इसे नेटवर्क पर धक्का देता हूं, तो यह काम नहीं करता है क्योंकि यह C: \ Windows \ Temp निर्देशिका को नहीं लिख सकता है। मैं वास्तव में किसी भी कोड है कि उस निर्देशिका के लिए लिखते हैं फोन कर रहा हूँ नहीं है, लेकिन मुझे लगता है यह एक वेब सेवा करने के लिए अपने कॉल की वजह से निम्नलिखित अपवाद दिया जाता है:लिखने से .NET को रोकें C: Windows Temp

एक अस्थायी वर्ग (परिणाम = 1) बनाया जा सकता। त्रुटि CS2001: स्रोत फ़ाइल 'सी: \ विन्डोज़ \ TEMP \ cyalinh1.0.cs' त्रुटि नहीं मिली CS2008: निर्दिष्ट कोई इनपुट नहीं '। अधिक जानकारी के लिए कृपया इनरएक्सप्शन देखें।

क्या .NET को Temp निर्देशिका से लिखने से रोकने का कोई तरीका है? क्या यह .config फ़ाइल में एक सेटिंग है?

अद्यतन

SGEN वेब सेवा से उन डायनामिक रूप से तैयार की कक्षाओं के निर्माण को रोकने के लिए इस्तेमाल किया जा सकता है?

+0

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

+0

मैं dll कि एक वेब सेवा से अधिक कहा जाता है SGENing के साथ इन गतिशील वर्ग संकलन को रोकने के कर सकते हैं? – Josh

उत्तर

4

ऐसा लगता है कि webservices को% SystemRoot% \ Temp (MSDN) को पढ़ने/लिखने की अनुमति की आवश्यकता होती है।

here से

:

aspnet_regiis -GA MachineName\Account 

यह blog post निर्देश शामिल हैं:

आप ASP.NET 2.0 या इसके बाद के चला रहे हैं, आप आदेश के साथ आवश्यक अनुमतियां दे सकते हैं इस के लिए प्रयुक्त SystemRoot \ Temp फ़ोल्डर के स्थान को बदलने के तरीके के साथ-साथ वेब में सेटिंग निर्धारित करने के लिए परावर्तक का उपयोग करने के निर्देशों के बारे में निर्देश।config

+0

अस्थायी निर्देशिका पथ सेट करने के लिए एक सेटिंग, या शायद एक वातावरण चर भी वहाँ है (एक ला 'TMPDIR'),? –

+0

संपादित पोस्ट कैसे अस्थायी फ़ोल्डर बदलने के लिए पर निर्देश के लिए लिंक जोड़ने के लिए। –

1

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

0

जोश चलाता है,

मेरा अनुमान होगा कि कॉल आप कर रहे हैं किक करने की कोशिश कर रहा है लक्ष्य पीसी पर एक डीबगिंग सत्र से बाहर। यह अपवाद होने के बाद, स्रोत फ़ाइल खींचने की कोशिश कर रहा है।

मूल कारण वेब सेवा कॉल में अपवाद है। एप्लिकेशन config में कुछ <system.windows.forms jitDebugging="false"/> तरह

मैं कुछ खुदाई किया:

अस्थायी फ़ोल्डर में लिखने को कम करने के लिए आपको लक्ष्य मशीनों पर जस्ट-इन-समय डिबगिंग निष्क्रिय करने में सक्षम हो सकता है। ऐसा लगता है कि समस्या सर्वर पर हो सकती है, क्लाइंट मशीनों पर नहीं। यदि आप webservice होस्ट करने वाले उपयोगकर्ता के लिए अस्थायी फ़ोल्डर में पढ़ने/लिखने की अनुमतियां जोड़ते हैं, तो यह ठीक हो सकता है। उपरोक्त पागल सलाह के लिए खेद है ...

0

खोजे गए तो कई मंचों इस तरह एक स्थिति) के लिए स्थापित करने के लिए और अंत में तय it..This me..here तुम जाओ के लिए काम किया !!

  1. राइट क्लिक c: \ windows \ अस्थायी फ़ोल्डर

  2. सुरक्षा टैब के अंतर्गत

    , उपयोगकर्ताओं की सूची के iisuser खाता जोड़ने और देने के पठन/लेखन/पहुँच निष्पादित (या) पूर्ण अधिकार

  3. वेबसाइट को पुनः आरंभ

Thats यह !!! ... आप आवेदन जो तैनात वेब सेवा खपत जाँच

यह करना चाहिए ..

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