[asp.net] Sys अपरिभाषित है



Answers

जब मैंने त्रुटियों का अनुभव किया

  • Sys अपरिभाषित है
  • एएसपी.नेट अजाक्स क्लाइंट-साइड फ्रेमवर्क लोड करने में विफल रहा

आईई में .NET 2.0 में ASP.NET अजाक्स नियंत्रण का उपयोग करते समय, मुझे <system.web> टैग के भीतर web.config फ़ाइल में निम्नलिखित जोड़ने की आवश्यकता है:

<httpHandlers>
  <remove verb="*" path="*.asmx"/>
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler" validate="false"/>
</httpHandlers>
Question

मेरे पास एक एएसपी.Net/AJAX नियंत्रण किट प्रोजेक्ट है जिस पर मैं काम कर रहा हूं। 80% समय कोई समस्या नहीं है। पृष्ठ जैसा चलता है उतना चलता है। यदि आप पृष्ठ को रीफ्रेश करते हैं तो यह कभी-कभी जावास्क्रिप्ट त्रुटि दिखाता है "Sys अपरिभाषित है"।

यह हर समय नहीं होता है, लेकिन यह पुनरुत्पादित है। जब ऐसा होता है, तो उपयोगकर्ता को अपना ब्राउज़र बंद करना होगा और पृष्ठ को फिर से खोलना होगा।

इससे मुझे विश्वास होता है कि यह आईआईएस सेटिंग हो सकता है।

एक और नोट जब मैं त्रुटि प्राप्त करता हूं, और जब नहीं, तो मैंने पृष्ठ स्रोत को देखा। जब पृष्ठ त्रुटियों को फेंकता है तो निम्न कोड गुम है:

<script src="/ScriptResource.axd?d=EAvfjPfYejDh0Z2Zq5zTR_TXqL0DgVcj_h1wz8cst6uXazNiprV1LnAGq3uL8N2vRbpXu46VsAMFGSgpfovx9_cO8tpy2so6Qm_0HXVGg_Y1&amp;t=baeb8cc" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</script>



मेरे AjaxControlToolkit.dll को 4.1.60623.0 से नवीनतम संस्करण 4.1.7.725 में अपडेट करने के बाद भी मुझे एक ही समस्या थी। मैंने खोज की है और इस पृष्ठ पर आया है, लेकिन कोई भी जवाब मेरी मदद नहीं करता है। कोडप्लेक्स ज़िप फ़ाइल में मौजूद अजाक्स कंट्रोल टूलकिट की नमूना वेबसाइट को देखने के बाद, मुझे एहसास हुआ है कि <asp:ScriptManager> को नए <ajaxtoolkit:ToolkitScriptManager> द्वारा प्रतिस्थापित किया गया है। मैंने ऐसा किया और कोई Sys नहीं है। विस्तारित अब और अपरिभाषित है




एक समान समस्या थी, सिवाय इसके कि मेरा पृष्ठ निरंतर उत्पन्न होता है Sys अनिर्धारित त्रुटि है।

मेरे लिए समस्या इस तथ्य से उत्पन्न होती है कि मैंने अभी .NET 2.0 के लिए AJAX 1.0 एक्सटेंशन इंस्टॉल किया है लेकिन विजुअल स्टूडियो में पहले से ही मेरी वेब प्रोजेक्ट बनाई है।

जब AJAX नियंत्रण बनाने की कोशिश की गई तो मैंने इस त्रुटि का सामना करना जारी रखा, मैंने यहां स्लेस और मैडमैक्स 1138 पोस्ट पोस्ट किए। और लगा कि यह मेरा web.config था, मैंने नई "AJAX सक्षम वेब साइट" प्रोजेक्ट प्रकार का उपयोग करके एक नई परियोजना बनाई, और सुनिश्चित करें कि web.config में AJAX नियंत्रणों का उपयोग करने के लिए आवश्यक बड़ी संख्या में अनुकूलन आवश्यक हैं।

मैंने बस web.config अद्यतनों के साथ web.config को अपडेट किया है, मैंने पहले से ही खुद को बनाया है और इसे अपने मौजूदा प्रोजेक्ट में गिरा दिया है और सब कुछ ठीक काम करता है।




मुझे एक ही समस्या थी लेकिन मैंने इसे ठीक किया:

किसी पृष्ठ में एक स्क्रिप्ट फ़ाइल डालने पर, सुनिश्चित करें कि यह है

<script></script> and not <script />.

मैंने इसका अनुसरण किया है: http://forums.asp.net/t/1742435.aspx?An+element+with+id+form1+could+not+be+found+Script+error+on+page+load

उम्मीद है कि यह मदद करेगा




मेरे मामले में, मुझे एक बहुत ही छुपा कारण मिला है ... यह पृष्ठ मार्ग Global.ascx.cs में था जो उप-फ़ोल्डरों में मेरे परीक्षणों में प्रकट नहीं होता है लेकिन हर बार प्रश्न त्रुटि देता है .. दूसरा अजीब मुद्दों के साथ दिन।

routes.MapPageRoute("siteDefault", "{culture}/", "~/default.aspx", false, new RouteValueDictionary(new { culture = "(\\w{2})|(\\w{2}-\\w{2})" }));



यह बेवकूफ लग रहा है लेकिन मुझे वीएस -2010 में विकसित होने वाली साइट के साथ एक ही समस्या थी और वीएस देव सर्वर में होस्ट किया गया था। प्रश्न वाले पृष्ठ में एक डब्ल्यूसीएफ सेवा से कनेक्शन बनाने के लिए एक स्क्रिप्ट प्रबंधक था। मैंने सेवा के लिए एक अतिरिक्त विधि जोड़ा और यह त्रुटि प्रकट हुई।

ऑरोजेक्ट वेब सेटिंग्स में एक अलग पोर्ट नंबर के साथ 'ऑटो-असाइन पोर्ट' से 'विशिष्ट पोर्ट' में मेरे लिए यह तय किया गया था।

काश मैं जानता था क्यों ...




आपको इन लाइनों को web.config में जोड़ना होगा

<httpHandlers>
  <remove verb="*" path="*.asmx"/>
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>

उम्मीद है की यह मदद करेगा।




मुझे आज एक ही त्रुटि दिखाई दे रही है, लेकिन यह एक कॉन्फ़िगरेशन या प्रत्यक्ष जावास्क्रिप्ट समस्या नहीं थी।

एक बाहरी .net प्रोजेक्ट अपडेट किया गया था लेकिन वेब साइट के संकलन में बदलाव ठीक से नहीं उठाए गए थे। मेरी धारणा यह है कि एएसपी.NET AJAX सही ढंग से .NET ऑब्जेक्ट्स के क्लाइंट प्रस्तुतियों को बनाने में सक्षम नहीं था और इसलिए सही ढंग से लोड करने में विफल रहा था।

हल करने के लिए, मैंने बाहरी प्रोजेक्ट का पुनर्निर्माण किया, और मेरे समाधान को पुनर्निर्मित किया जो मुद्दों का सामना कर रहा था। समस्या चली गई।




यह सुनिश्चित करने के अलावा कि आपके पृष्ठ पर स्क्रिप्ट मैनेजर है, आपको यह सुनिश्चित करने की आवश्यकता है कि आपका web.config उचित रूप से कॉन्फ़िगर किया गया हो।

जब ASP.NET AJAX 1.0 जारी किया गया था (.NET 2.0 के लिए) वहां बहुत सी कस्टम वेब.कॉन्फिग सेटिंग्स थीं, जिनमें हैंडलर, नियंत्रण इत्यादि शामिल थे।

आपको यहां कॉन्फ़िगर जानकारी मिल जाएगी: http://www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx




मुझे यह वही मुद्दा था और बहुत झगड़ा करने के बाद मैंने समस्या को आजमाने और अलग करने का फैसला किया और बस एक खाली पृष्ठ में स्क्रिप्ट मैनेजर लोड किया जो अभी भी एक ही त्रुटि में हुआ। एक नई नई (काम कर रहे) टेस्ट साइट के साथ मेरी साइट के web.config की तुलना के माध्यम से मिली समस्या को अलग करने के बाद, जो <compilation debug="true"> को <compilation debug="false"> में system.web सेक्शन में बदल रहा है मेरा web.config समस्या को हल करता है।

अद्यतन पैनल को ठीक से काम करने के लिए मुझे system.web से <xhtmlConformance mode="Legacy"/> प्रविष्टि को भी हटाना पड़ा। इस मुद्दे के विवरण के लिए यहां क्लिक करें




डीन एल का जवाब, https://.com/a/1718513/292060 मेरे लिए काम किया, क्योंकि सेस को मेरी कॉल भी बहुत जल्दी थी। चूंकि मैं jQuery का उपयोग कर रहा हूं, इसे नीचे ले जाने की बजाय, मैंने स्क्रिप्ट को एक दस्तावेज़ के अंदर रखा है। पहले से कॉल करें:

$(document).ready(function () {
  Sys. calls here
});

ऐसा लगता है कि Sys उपलब्ध है।




बस अपने समाधान में रिक्त .axd फ़ाइलें बनाएं रूट फोडर समस्या हल हो जाएगी। (2 फाइल: scriptresouce.asx, webresource.asxd)




वेब कॉन्फ़िगरेशन के लिए सही प्रविष्टि जोड़ने के बाद भी यह त्रुटि हो रही है? इस त्रुटि के लिए सबसे आम कारण जावास्क्रिप्ट है जो Sys नामस्थान को बहुत जल्दी संदर्भित करता है। फिर सबसे स्पष्ट फिक्स स्क्रिप्ट मैनेजर नियंत्रण के नीचे जावा स्क्रिप्ट ब्लॉक को स्थानांतरित करेगा:




मैंने अलग एएसपीनेट AJAX समाधान बनाकर इस समस्या को हल किया और वेब.कॉन्फिग से काम करने वाली परियोजना में सभी AJAX कॉन्फ़िगरेशन कॉपी और पेस्ट किया।

यहां आवश्यक कॉन्फ़िगरेशन हैं जिन्हें आपको web.config में सेट करना चाहिए

    <configuration>
<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>

    </sectionGroup>
</configSections>

        <assemblies>

            <add assembly="System.Web.Extensions,     Version=1.0.61025.0,       Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

        </assemblies>
           </compilation>
        <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
</system.web>
    <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
</system.webServer>



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

मेरे मामले में आवेदन ने सोचा कि यह केवल गहरा स्तर था, फिर यूआरएल पहुंचा।

उदाहरण: http://mysite.com/app/page.aspx असली यूआरएल था। लेकिन मैंने एएसपीनेट और डब्ल्यूसीएफ के लिए ठीक काम किया / एप / यह ठीक काम किया, लेकिन स्पष्ट रूप से अजाक्स के लिए नहीं।






Links