2012-04-26 15 views
7

मैंने विजुअल स्टूडियो एक्सप्रेस 2010 में "एएसपी.NET खाली वेब साइट" बनाई है।क्या त्रुटि के पीछे कोई स्पष्टीकरण है "नाम या नामस्थान नाम 'स्क्रिप्ट' नामस्थान 'System.Web' में मौजूद नहीं है"

App_Code में कोड फ़ाइल पर, मेरे पास "System.Web.Script.Serialization का उपयोग कर" पंक्ति है।

Exception message: c:\inetpub[....]\Extensions.cs(10): error CS0234: The type or namespace name 'Script' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

(। सर्वर विंडोज सर्वर 2008 ASP.NET 4.0 स्थापित के साथ चल रहा है आईआईएस 7 के साथ)

के बाद से:

जब मैं सर्वर पर फ़ाइलें धक्का दे दिया, मैं निम्नलिखित त्रुटि मिली यह एक वेब साइट है, न कि एक वेब प्रोजेक्ट, मैं यहां "प्रचार" सुविधा का उपयोग नहीं कर सका: The type or namespace name 'Script' does not exist in the namespace 'System.Web'

अंत में, कुछ खुदाई के बाद, मुझे पता चला कि यह नामस्थान System.Web में शामिल है। विस्तार विधानसभा, और मुझे यह करना पड़ा मैन्युअल web.config के माध्यम से इसे में शामिल हैं:

<compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
     <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </assemblies> 
</compilation> 

तो, मेरे सवाल: वहाँ इस बारे में जाने के लिए एक बेहतर तरीका है?

चूंकि मेरी स्थानीय परियोजना पर इसकी कोई आवश्यकता नहीं है, मैं पहले यह निर्धारित कैसे कर सकता हूं कि मैन्युअल रूप से संदर्भित करने के लिए मुझे कौन सी असेंबली की आवश्यकता होगी, और दूसरा, मैं संदर्भ करने के लिए आवश्यक जानकारी कैसे प्राप्त कर सकता हूं (यानी, मैं कैसे कर सकता हूं PublicKeyToken प्राप्त करें)?

अद्यतन

क्योंकि यह एक वेब साइट और एक वेब प्रोजेक्ट है, संदर्भ की सूची को जब तक के बाद मैं मैन्युअल Web.Config में शामिल करें दिखाई नहीं देता।

तो, "स्थानीय" कॉपी करें "सत्य" का चयन करने के लिए इस उदाहरण में काम नहीं करता है।

उत्तर

14

ऐसा लगता है कि आपके प्रदाता के पास GAC में dll System.Web.Extensions नहीं है।

नामस्थान System.Web.ScriptsSystem.Web.Extensions.dll का हिस्सा है।

यदि आप करते हैं तो आप अपनी समस्या का समाधान कर सकते हैं।

  1. करें System.Web.Extensions अपनी परियोजना में संदर्भ
  2. गुण टैब पर जाएँ और true

को Copy Local सेट यह सुनिश्चित करता है कि आप इस dll भी तैनात।

enter image description here

enter image description here

+0

यदि मैं वीएस एक्सप्रेस में वेब साइट देख रहा हूं, जब मैं संदर्भ देखने के लिए क्लिक करता हूं, तो सूची खाली होती है (जब तक कि मैं उन्हें मैन्युअल रूप से web.config में मैन्युअल रूप से जोड़ूं), और इसलिए मैं "कॉपी स्थानीय" को "सत्य" पर सेट नहीं कर सकता। मुझे लगता है कि यह काम करेगा यदि यह वास्तविक वेब प्रोजेक्ट था और वीएस में सिर्फ एक साधारण वेब साइट नहीं थी। – dochoffiday

1

बस अपनी परियोजना के लिए एक संदर्भ के रूप में System.Web.Extensions जोड़ें। आपको web.config के माध्यम से मैन्युअल रूप से ऐसा करने की ज़रूरत नहीं है। सुनिश्चित करें कि यह आपके वितरण में शामिल है, यह सुनिश्चित करने के लिए स्थानीय को कॉपी करें।

1

आप अपनी वेबसाइट प्रोजेक्ट में प्रोजेक्ट नाम/स्थान पर राइट क्लिक कर सकते हैं और चुनें संदर्भ जोड़ें ...। वहां से एक संवाद प्रदर्शित होगा। .NET टैब चुनें और System.Web.Extensions का चयन करें। इसे परियोजना में जोड़ना चाहिए। आप इसे किसी भी नामस्थान के लिए कर सकते हैं जिसे आपको जोड़ने की आवश्यकता है।

0

मेरा मुद्दा समान था, क्योंकि मैं एक WPF एप्लिकेशन कर रहा हूं। एक्सटेंशन संदर्भ जोड़ना इंटेलिजेंस के लिए जावास्क्रिप्टसेरियलाइज़र को तुरंत चालू करने के लिए आवश्यक चीज़ों का पता लगाने के लिए पर्याप्त नहीं था। बाद में मुझे पता चला कि मुझे System.Web.Script.Serialization का उपयोग करने की आवश्यकता है; और फिर आखिर में काम किया :)

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

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