2013-10-04 3 views
5

मेरे पास एक एएसएक्स फ़ाइल है जो पीडीएफ दस्तावेजों की सेवा करती है। हमारा पर्यावरण हम स्थानीय रूप से विकसित होते हैं, और वेब ऐप को विभिन्न वातावरण में स्थानांतरित किया जाता है: परीक्षण और फिर उत्पादन।सर्वर.एक्सपीएथ एएसएक्स में?

सर्वर पर पथ तक पहुंचने का सबसे अच्छा तरीका क्या है? मैं .ashx हैंडलर में Server.MapPath() का उपयोग कैसे कर सकता हूं।

+0

क्या आप भौतिक पथ को जानते हैं जो आप उत्पादन में तैनात करने जा रहे हैं? –

उत्तर

11

मैं परिदृश्य

मामला एक करने के लिए एक अन्य मामले में जोड़ना चाहते हैं:

उदाहरण के लिए यदि आप पथ पता तैनात करने के लिए और इस संदर्भ में नहीं है आपके आवेदन का: वीएस 2010 से आप अपने निर्माण कॉन्फ़िगरेशन

के आधार पर इसे सरल रखने के लिए web.config transform जोड़ सकते हैं। n एक web.debug.config है (चलिए विकास मानते हैं) और web.release.config (उत्पादन) या यदि आप चाहें तो web.production.config के रूप में अपनी खुद की बिल्ड कॉन्फ़िगरेशन सेट अप कर सकते हैं।

आप फ़ोल्डर का पूरा पथ संदर्भित करने के लिए एक आवेदन पत्र सेटिंग बना सकते हैं और निर्भर करता है जो पर्यावरण पर आप

कुछ

तरह
<appSettings> 
    <add key="folderPath" value="c:\dev" /> 
    // other keys here 
</appSettings> 

<?xml version="1.0" encoding="utf-8"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <appSettings> 
    <add key="folderPath" value="c:\production" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/> 
    </appSettings> 
</configuration> 

मामला दो तैनात करने के लिए जा रहे हैं एक परिवर्तन कर सकते हैं: सर्वर मैपपैथ का उपयोग करते हुए आपने

System.Web.HttpContext.Current.Server.MapPath() or context.Server.MapPath() 
4

पीडीएफ फाइलों जहाँ आपके ashx संग्रहीत किया जाता है की एक उपनिर्देशिका में जमा हो जाती है, तो आप अपने आवेदन के रूट के रूप में इस्तेमाल कर सकते हैं ~:

public void ProcessRequest (HttpContext context) { 
// ... 
    context.Response.WriteFile("~/PDFs/onefile.pdf"); 
} 

यदि आपकी फ़ाइलें है कि एक भौतिक फ़ोल्डर में हैं वर्चुअल निर्देशिका नहीं, आप वेब में पथ को स्टोर कर सकते हैं। कॉनफिग (देव, परीक्षण और उत्पादन में एक अलग कॉन्फ़िगरेशन के साथ)

14

आप के माध्यम से Server तक पहुंच सकते हैं।

public void ProcessRequest(HttpContext context) { 

    context.Server.MapPath(...); 
} 
संबंधित मुद्दे

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