2011-12-12 25 views
11

मुझे अपनी वेबसाइट पर लोड करने के लिए स्क्रिप्ट फाइल नहीं मिल सकती हैं। बाकी सब कुछ ठीक काम करता है। हालांकि मैंने ScriptResource.axd को आजमाया नहीं है।WebResource.axd नहीं मिला

मैंने सत्यापित किया है कि यह समस्या कैसिनी और आईआईएस 7 दोनों पर मौजूद है।

मैंने सत्यापित किया है कि मेरे 64 बिट 4.0 web.config में WebResource.axd के लिए मानचित्रण शामिल है।

मेरा सिस्टम समय सही है (मैंने सुना है कि इसके साथ समस्या हो सकती है)।

मैंने सत्यापित किया है कि यह अन्य परियोजनाओं में काम करता है, इसलिए अपराधी को मेरा वेब एप्लिकेशन होना चाहिए।

मेरा वेब एप्लिकेशन 4.0 एमवीसी 3 वेब एप्लिकेशन है।

मेरा वेब.कॉन्फिग here पाया जा सकता है।

यह त्रुटि मुझे मार रही है! किसी भी सहायता की सराहना की जाएगी!

Resource not found

उत्तर

5

आपका web.config फ़ाइल (यह एक तारीफ नहीं है) अद्भुत है: .NET फ्रेमवर्क 4.0 में, यह बहुत कम/हल्का होना चाहिए।
मुझे लगता है कि अपने हैंडलर गलत अनुभाग में घोषित किया जाता है:

<system.webServer> 
    <handlers> 
     <add name="WebResource" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" /> 
    </handlers> 
</system.webServer> 

आम तौर पर, WebResource.axd हैंडलर "system.web" खंड में घोषित किया जाता है:

<system.web> 
    <httpHandlers> 
     <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" /> 
    </httpHandlers> 
</system.web> 
+0

मैं कोई लाभ नहीं हुआ साथ एक बार में दोनों स्थानों में उन्हें था। हालांकि मुझे उनकी जरूरत भी नहीं होनी चाहिए, यह देखते हुए कि वे पहले से ही मेरी मशीन.कॉन्फिग (web.config) में कैसे हैं। –

+2

आप सही हैं: इस कथन की सामान्य रूप से आवश्यकता नहीं है। चूंकि आप एमवीसी का उपयोग कर रहे हैं, क्या आपने जांच की है कि रूटिंग WebResource.axd पथ से विरोधाभासी नहीं है? मैं एमवीसी का उपयोग नहीं करता लेकिन मुझे पता है कि रूटिंग कभी-कभी बहुत मुश्किल हो सकती है और अप्रत्याशित व्यवहार की ओर ले जाती है। – CedX

+0

इसमें इग्नोर .axd प्रविष्टि है। –

4

मैं एक ऐसी ही समस्या का समाधान हो फ़ोल्डर में हर किसी के लिए पढ़ने की अनुमति जोड़कर जहां एम्बेडेड संसाधन युक्त असेंबली स्थित थी। स्पष्ट रूप से हर कोई अधिक है, लेकिन यह दूसरों को समान मुद्दों पर शोध करने में मदद कर सकता है।

हमारे मामले में कुछ संसाधन लोड हो गए हैं (इसलिए मुझे पता है कि असेंबली रिसोर्सलोडर काम कर रहा था) और यह एक मशीन पर काम करता था लेकिन दूसरा नहीं।

This answer किसी अन्य प्रश्न के लिए मुझे यह निर्धारित करने में मदद मिली कि कौन सी असेंबली काम नहीं कर रही थीं।

3

मैं फिर से aspnet_regiis चल रहा एक उत्पादन मशीन पर इस मुद्दे को हल:

%WINDIR%\Microsoft .NET\Framework\4.xxxx\aspnet_regiis -i 

शायद ढांचे 4 के मानक स्थापना गलत हो गया।

3

थोड़ी देर हो चुकी है, लेकिन भविष्य में कोई मदद कर सकता है ...

मैंने पाया कि इस करता है, तो वेब अनुप्रयोग आप प्रदान कर रहे हैं के DLL वर्तमान दिनांक समय की तुलना में नए हैं हो सकता है। उदाहरण के लिए, आप अपने वेब एप्लिकेशन को उत्पादन सर्वर पर डालते हैं जहां सर्वर का समय आपकी विकास मशीन से पुराना है।

देव मशीन के साथ किया था मेरे लिए चाल ...

0

मैं एक उत्पादन सर्वर पर Umbraco के साथ इस .axd मुद्दा था सिंक में सर्वर समय हो रही है, यह मुझे पागल जब तक मैं सर्वर है कि पता चला दिया अलग सुरक्षा और अनुरोध फ़िल्टरिंग के तहत, एक्सटेंशन .axd और।में सूचीबद्ध नहीं किया गया था डिफ़ॉल्ट रूप से फ़ाइल नाम, और होस्टिंग कंपनी की सेटिंग अनलिस्टेड फ़ाइल नाम एक्सटेंशन बंद हो गई, जो मेरी विकास मशीन से अलग थी।

4

बिल्कुल समाधान है: अगर विधानसभा WebResourceAttribute यह 404 त्रुटि फेंकता नहीं है लाइन 606

WebResourceAttribute wra = FindWebResourceAttribute(assembly, resourceName); 

पर: https://github.com/Microsoft/referencesource/blob/master/System.Web/Handlers/AssemblyResourceLoader.cs आप चाल देख सकते हैं: http://www.4guysfromrolla.com/articles/080906-1.aspx जब आप .NET Framework कोड की जाँच करें। आप इस लाइन पर देख सकते हैं

if (resourceStream == null) { 
      if (resourceIdentifierPresent) { 
       LogWebResourceFailure(decryptedData, exception); 
      } 
      throw new HttpException(404, SR.GetString(SR.AssemblyResourceLoader_InvalidRequest)); 
     } 

तो अपने AssemblyInfo.cs को WebResourceAttribute जोड़ने इस तरह दायर:

[assembly: WebResource("FullNameSpace.SampleResourceFile.js", "text/javascript")] 
संबंधित मुद्दे