2011-06-03 12 views
31

नहीं बनाया जा सका मैंने webservice बनाया है और इसे स्थानीय मशीन पर प्रकाशित किया है। फिर मैंने इसे सर्वर पर अपलोड कर लिया है।पार्सर त्रुटि:

अब जब मैं वेब सेवा का उपयोग करने की कोशिश की यह निम्नलिखित त्रुटि देता है:

Parser Error Message: Could not create type 'webservice.myservice'

Source Error: Line 1: <%@ WebService Language="C#" CodeBehind="myservice.asmx.cs" Class="webservice.myservice" %>

मैं अपने समस्या को हल करने This लिंक लेकिन असमर्थ की कोशिश की।

मुझे क्या करना चाहिए?

+0

क्या आपने एएसएमएक्स पेज के साथ डीएलएल या .cs/vb पेज अपलोड किया है? ऐसा लगता है जैसे आप कक्षा के पीछे कोड खो रहे हैं? – Bex

+0

हां मैंने ज़िप फ़ाइलों में सभी फाइलें अपलोड की हैं। और सर्वर पर unzipped। – Meghan

+0

जहां तक ​​मुझे पता है कि त्रुटि का शाब्दिक अर्थ है कि पृष्ठ कोड नहीं ढूंढ सकता है। क्या बाकी साइट काम करती है .. अगर कोई है? आम तौर पर यदि यह स्थानीय रूप से ठीक से चलता है, तो कुछ ठीक से कॉपी नहीं किया गया है। – Bex

उत्तर

39

पता नहीं अगर यह मंद और सुदूर अतीत से कुछ खींच है .. लेकिन मैं इस समस्या .. यह तय था .. इसलिए मैंने सोचा कि मैं

साझा करते हैं जब आप दृश्य स्टूडियो में एक वेब सेवा बनाने (मैं 2010 का उपयोग कर रहा हूँ, लेकिन मैं कल्पना करता यह दूसरों के लिए ही है) यह एक फ़ाइल Service1.asmx

आप MyService.asmx (या जो भी) के लिए इसका नाम बदलना करने के लिए परीक्षा हो जाएगा

तो फिर तुम गौर करेंगे कहा जाता है बनाता है अंदर और देखें

public class Service1: System.Web.Services.WebService 

जब आप इसे चलाने की कोशिश है जो आप

public class MyService: System.Web.Services.WebService 
तो

को बदल देंगे तो आपको त्रुटि

प्रकार 'MyProject.MyService'

नहीं बना सका क्योंकि यह अभी भी सोचता है कि मिल कक्षा को सर्विस 1 कहा जाता है ..

यदि आप .asmx फ़ाइल पर राइट क्लिक करते हैं और देखें Mar kup आप देखेंगे यह अभी भी कह

<%@ WebService Language="C#" CodeBehind="MyService.asmx.cs" Class="MyProject.Service1" %> 

<%@ WebService Language="C#" CodeBehind="MyService.asmx.cs" Class="MyProject.MyService" %> 

यह बचाने .. यह कोशिश करने के लिए परिवर्तन यह ..

मेरे लिए काम किया ..

+0

धन्यवाद, मैंने सोचा कि मैं इसे ठीक करने के लिए सही रास्ते पर था और यह उत्तर पुष्टि करता है कि। हालांकि, यह MyProject नहीं है। MyService उसकी MyNamespace.MyService। मुझे लगता है कि मुझे अतीत से एक और आगंतुक होना चाहिए क्योंकि "यह सवाल बंद है क्योंकि भविष्य में आने वाले लोगों की मदद करने की संभावना नहीं है"। Bollocks। – capn

+0

यह निश्चित रूप से मेरी मदद करता है। मैं डब्ल्यूसीएफ में आने से पहले वेब सेवाओं को समझने की कोशिश कर रहा हूं। – TheSilverBullet

+3

मुझे यह समस्या थी और मुझे एक अलग समस्या थी, इसलिए यहां अन्य निराशाजनक लोगों के लिए समाधान है। यदि आप बिल्ड लक्ष्य फ़ोल्डर को बदलते हैं, तो यह काम करना बंद कर देगा। आपको बिल्ड के आउटपुट को प्रतिलिपि बनाना होगा। \ Bin \ – TCS

8

मैं एक ही था समस्या और इसे लंबे समय तक देखा!

उन में से कोई भी मेरे लिए काम किया:

मैं निम्नलिखित सहित बहुत कुछ करने की कोशिश की। कुछ खोज, परीक्षण और शाप देने के बाद, मुझे अंत में समस्या मिली: एप्लिकेशन (webservice) गलत तरीके से होस्ट किया गया था।

मैं एक परियोजना दो समाधान युक्त था: एक समाधान वेबसाइट है कि मैं (HTML, जावास्क्रिप्ट, आदि) बनाया गया था, अन्य समाधान व्यवसाय के साथ एक फ़ोल्डर निहित

मुझे एक छोटे पृष्ठभूमि के साथ के बारे में बताएं तर्क, डेटाबेस मॉडल और webservices। स्पष्ट रूप से webservices फ़ोल्डर में मेरे .asmx फ़ाइलें और कोड-पीछे उनके लिए निहित है।

  • परियोजना
    • डाटा कोर
      • डेटाबेस मॉडल
      • व्यापार तर्क
      • Webservices
        • myWebservice.asmx
    • वेबसाइट

मैं निम्नलिखित तरीके से इन होस्टिंग गया था:

  • मेरी वेबसाइट रूट फ़ोल्डर के रूप में वेबसाइट फ़ोल्डर के साथ एक नई साइट के रूप में आयोजित किया गया
  • मेरे webservices मैं अपनी वेबसाइट में एक अनुप्रयोग के रूप में होस्टिंग कर रहा था, webservices फ़ोल्डर रूट

अधिक नेत्रहीन:

  • IIS 7
    • मेरी वेबसाइट => "वेबसाइट" फ़ोल्डर में ओर इशारा करते हुए
      • Webservices आवेदन => डेटा कोर में "Webservices" फ़ोल्डर में ओर इशारा करते हुए

इसके परिणामस्वरूप निम्नलिखित यूआरएल "http://website/webservices/myWebservice.asmx" हुआ, जिसने मुझे "प्रकार नहीं बना सका" त्रुटि दी।

अब, थोड़ा सा खेलने के बाद मैंने webservice फ़ोल्डर की बजाय रूट कोर के रूप में डेटा कोर से शुरू होने वाले मेरे webservice एप्लिकेशन को होस्ट करने का प्रयास किया।

दिखने में:

  • IIS 7
    • मेरी वेबसाइट => "वेबसाइट" फ़ोल्डर
      • Webservices आवेदन पर ओर इशारा करते हुए => "डाटा कोर" फ़ोल्डर में ओर इशारा करते हुए।

जाहिर है एक ही यूआरएल का उपयोग कर के रूप में पहले मुझे एक "फ़ाइल नहीं मिली" त्रुटि देना होगा। हालांकि, निम्नलिखित यूआरएल "http://website/webservices/webservices/myWebservice.asmx" का उपयोग करके, मुझे अंत में काम कर रहा है वेब सर्विसेज पेज!

एक छोटा सा यूआरएल टूटने:

  • http: // वेबसाइट/=> मेरी वेबसाइट "वेबसाइट" फ़ोल्डर से
    • webservices/=> "डाटा कोर" फ़ोल्डर के बराबर
      • webservices/=> "डाटा कोर" फ़ोल्डर
        • myWebservice.asmx => w में "webservices" फ़ोल्डर "Webservices" फ़ोल्डर में ebservice फ़ाइल, "डाटा कोर" फ़ोल्डर में

मुझे लगता है कि क्योंकि मैं अपने webservices सीधे "webservices" से फ़ोल्डर डाटा में की मेजबानी गया था कोर, सर्वर को वेब सेवा के संकलित डीएलएल (जो "बिन" फ़ोल्डर में रहता है) नहीं मिला, क्योंकि मैं एक गहरे स्तर पर होस्टिंग कर रहा था।

विन्यास बदलने और "डेटा कोर" फ़ोल्डर से वेब सर्विसेज को होस्ट करने के बाद, आईआईएस सर्वर बिन फ़ोल्डर को "देख" सकता है और वेबसाइसेस को सफलतापूर्वक होस्ट कर सकता है। सही यूआरएल का उपयोग करते समय^_^

मुझे उम्मीद है कि यह स्पष्ट है और आपको समस्याओं के साथ आपकी मदद करता है!

1

एक और चीज जो समस्या का कारण बन सकती है। परियोजना के लिए आईआईएस खुद को फेंकने के लिए आवेदन नहीं बना रहा है।

प्रारंभ -> आईआईएस

ओपन इसके लिए खोज !!

डिफ़ॉल्ट वेब साइट या जिस वेबसाइट पर आप सेवा प्रकाशित करने की योजना बना रहे हैं उस पर राइट क्लिक करें।

आवेदन जोड़ें ... एक उपनाम पूर्व दर्ज करें। "MyWebService" ... भौतिक पथ चुनें। मेरे मामले में C:\inetpub\wwwroot\MyWebService था जो मेरा डिफ़ॉल्ट वेब साइट पथ है।

फिर जब आप थ्रेड विजुअल स्टूडियो को उस फ़ोल्डर को चुनते हैं तो प्रकाशित करते हैं। या बस अपनी कोड फाइलों को कॉपी करें।

0

मुझे काफी यकीन है कि यह ग्लेन ने जो कहा है, उसका सारांश है, लेकिन मैं इस मुद्दे में भाग गया क्योंकि मेरा आवेदन निर्देशिका संरचना में एक स्तर से बहुत अधिक निर्देशिका से बनाया गया था।

उदाहरण के लिए, मेरी वेब सेवा SiteProject_1/SiteProject_2/सेवा में थी।asmx

मूल रूप से SiteProject_1 जो मैंने आईआईएस के भीतर आवेदन में परिवर्तित किया था। मैं आईआईएस के भीतर उस एप्लिकेशन को हटाकर और साइटप्रोजेक्ट_2 को एप्लिकेशन में डालकर इस मुद्दे को हल करने में सक्षम था।

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