2012-02-20 16 views
7

मैं ऑर्चर्ड वेब ऐप के अंदर एक फ़ोल्डर डाउनलोड करना चाहता हूं जहां मैं ग्राहकों को निर्देशित कर सकता हूं ताकि वे फाइल डाउनलोड कर सकें। www.mydomain.com/downloads/test.txtऑर्चर्ड वेब एप्लिकेशन के अंदर वर्चुअल निर्देशिका

आईआईएस में मैंने ऑर्चर्ड वेबसाइट के नीचे एक वर्चुअल निर्देशिका (एप्लिकेशन नहीं) बनाई है जो सर्वर पर डाउनलोड फ़ोल्डर को इंगित करता है।

ऑर्चर्ड Global.ascx फ़ाइल में, मैं निम्नलिखित जोड़ दिया है, यह सोच कर कि यह एक मार्ग समस्या थी:

public static void RegisterRoutes(RouteCollection routes) { 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.IgnoreRoute("downloads/{*pathInfo}"); // added this IgnoreRoute 
} 

नहीं 100% यकीन है कि अगर यह आवश्यक है।

हालांकि, जब मैं फ़ाइल डाउनलोड करने के लिए जाता हूं, www.mydomain.com/downloads/test.txt, मुझे 404 त्रुटि प्राप्त होती रहती है।

उत्तर

8

मिले इस पोस्ट के लिए ठीक धन्यवाद: http://orchard.codeplex.com/discussions/280041

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

उसके बाद, मुद्दा यह है कि ऑर्चर्ड में web.config बाल अनुप्रयोगों के लिए प्रचारित करता है। इसे रोकने के लिए, आपको ऑर्चर्ड की web.config फ़ाइल में <system.web> और <system.webserver> नोड्स के आसपास <location path="." inheritInChildApplications="false"> जोड़ने की आवश्यकता है। आप स्थान टैग here पर और अधिक पढ़ सकते हैं।

उन परिवर्तनों के बाद, मैं सफलतापूर्वक अपनी test.txt फ़ाइल को बिना किसी समस्या के डाउनलोड कर सकता हूं।

2

शानदार, इस उत्तर के लिए आपको बहुत बहुत धन्यवाद।

<location path="Themes"> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 
    <location path="Core">  
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 
    <location path="Media"> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 
    <location path="Modules"> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 

कौन सा है कि समस्या हो रही किसी के लिए भी अपने ऑर्चर्ड शैली ठीक कर देंगे,: यह सीधे यहाँ मेरी ऑर्चर्ड शैलियों तोड़ दिया लागू करने के बाद, लेकिन उस लिंक पर एक नज़र के बाद, मैं कोड के इस बिट देखा।

यह सिर्फ <runtime> से पहले और पिछले </location> है कि आप बस <system.webServer> लपेटकर खत्म करने के लिए शामिल किया है के बाद, अपनी साइट के मूल में web.config फ़ाइल में रखा जाना चाहिए।

0

आपको जरूरी नहीं कि बगीचे के नीचे कॉन्फ़िगरेशन को हैक करने की आवश्यकता हो।

<configuration> 
<system.webServer> 
<handlers accessPolicy="Read, Script"> 
    <clear /> 
    <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Script" /> 
</handlers> 
</system.webServer> 

: मेरे लिए एक ऐसी ही स्थिति में वहाँ निम्नलिखित सामग्री के साथ वर्चुअल निर्देशिका के तहत एक web.config बनाने के लिए पर्याप्त था
संबंधित मुद्दे