2011-11-09 7 views
18

त्रुटि: एक अस्थायी कक्षा (परिणाम = 1) उत्पन्न करने में असमर्थ ... वेब सेवा पर विधियों को आमंत्रित करते समय। मैं वीएस 2008 सी # एएसपी.नेट 3.5 का उपयोग कर रहा हूं। मैं अपने आवेदन के लिए एक दूरस्थ webservice का आह्वान कर रहा हूँ।त्रुटि: अस्थायी कक्षा (परिणाम = 1) उत्पन्न करने में असमर्थ ... वेब सेवा

Server Error in '/' Application. 
Server was unable to process request. ---> Unable to generate a temporary class (result=1). 
error CS2001: Source file 'C:\WINDOWS\TEMP\6sbkwt2d.0.cs' could not be found 
error CS2008: No inputs specified 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> Unable to generate a temporary class (result=1). 
error CS2001: Source file 'C:\WINDOWS\TEMP\6sbkwt2d.0.cs' could not be found 
error CS2008: No inputs specified 


Source Error: 

Line 775:  [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CheckLogin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] 
Line 776:  public System.Data.DataSet CheckLogin(string uname, string pswd) { 
Line 777:   object[] results = this.Invoke("CheckLogin", new object[] { 
Line 778:      uname, 
Line 779:      pswd}); 


Source File: c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\14127ae4\96323535\App_WebReferences.u9ldrmk1.0.cs Line: 777 
+1

क्या आप हमें कुछ कोड दिखा सकते हैं? आप वेब सेवा कैसे कॉल कर रहे हैं? Webservices इंटरफ़ेस क्या है? क्या आपके पास जा रहे webservice फ़ंक्शन के लिए कोड भी है? की –

+0

संभव डुप्लिकेट [System.InvalidOperationException: एक अस्थायी वर्ग जनरेट करने में असमर्थ (परिणाम = 1)] (http://stackoverflow.com/questions/657993/system-invalidoperationexception-unable-to-generate-a-temporary-class- परिणाम -1) – V4Vendetta

+0

@Wouter मेरा webservice कॉलिंग कोड निम्नानुसार है-: वापस objWEB.CheckLogin (उपयोगकर्ता नाम, पासवर्ड); मैंने वेब रेफरेंस का उपयोग करके नामस्थान शामिल किया है; और webservice ऑब्जेक्ट बनाया (objWEB) WebReference.Service objWEB = नया WebReference.Service(); –

उत्तर

34

पहला, क्रेडिट जहां देय है। ओपी ने इस समस्या को हल किया और सवाल के टिप्पणी खंड में इसका उत्तर दिया। हालांकि, मैं समझता हूं कि बहुत से लोग स्टैक ओवरफ्लो में आते हैं और प्रश्न के माध्यम से पढ़ेंगे, और टिप्पणियों को नहीं देखेंगे। इसलिए, मैं उपरोक्त उत्तर को यहां रिले कर रहा हूं। यदि यह उपयोगी है तो प्रश्न को अप-वोट करना सुनिश्चित करें।

यह समस्या तब होती है क्योंकि आईआईएस में आपके वेब सेवा के एप्लिकेशन पूल से जुड़े खाते में C:\Windows\Temp फ़ोल्डर को पढ़ने/लिखने की अनुमति नहीं है। मुझे कोई सुराग नहीं है कि खाते को इस फ़ोल्डर तक पहुंच की आवश्यकता क्यों है, लेकिन यह करता है। मेरे आकस्मिक अवलोकन से ऐसा लगता है कि यह Temp फ़ोल्डर में यादृच्छिक नाम के साथ एक खाली फ़ाइल लिखता है।

इस समस्या को हल करने के लिए C:\Windows फ़ोल्डर पर ब्राउज़ करें, और Temp फ़ोल्डर पर राइट-क्लिक करें। गुण का चयन करें, और पर सुरक्षा टैब अपने वेब सेवाओं के एप्लिकेशन पूल से जुड़े खाते को जोड़ें। ठीक बटन दबाएं, आईआईएस पर जाएं और अपने एप्लिकेशन पूल को रीसायकल करें। यह आपके वेब सेवा अनुरोध को ठीक करना चाहिए।

यह ध्यान देने योग्य है कि इस त्रुटि के आसपास की परिस्थितियां थोड़ा भ्रामक हो सकती हैं। मैं 5 साल से अधिक समय में इस समस्या में भाग गया हूं। (मैं हर बार इसके बारे में भूल गया हूं।) कारण यह इतना ध्यान देने योग्य नहीं है क्योंकि आप एक वेब सेवा प्रकाशित कर सकते हैं, सफलतापूर्वक संबंधित asmx पृष्ठ पर ब्राउज़ करें और अपनी वेब सेवा विधियों की रूपरेखा देखें। इसके अलावा, आपकी विजुअल स्टूडियो प्रोजेक्ट वेब सेवा का संदर्भ जोड़ सकती है और विजुअल स्टूडियो आपके वीएस प्रोजेक्ट में वेब सेवा के लिए सभी संबंधित कक्षाओं को स्वतः उत्पन्न करेगा।

यह धारणा है कि सब कुछ ठीक से काम कर रहा है जब तक आप वेब सेवा पर एक विधि निष्पादित करने के लिए अपना पहला अनुरोध करने देता है। जब वेब कोड निष्पादित करना शुरू होता है तो वेब सेवा विफल हो जाएगी क्योंकि यह temp निर्देशिका तक पहुंच चाहता है।

इस बग के बारे में और जानकारी Microsoft.com पर स्वीकृत bug report पर मिल सकती है।

0

ऐसा तब होता है जब आपकी वेबसाइट एप्लिकेशन पूल "DefaultAppPool" के साथ काम नहीं करती है और आपने अपना स्वयं का पूल चुना है। उस स्थिति में आपको अपने पूल के नाम से उपयोगकर्ता जोड़ना होगा।

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

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