2009-03-12 8 views
5

मैं अपने मानक Asp.Net वेब अनुप्रयोग में उप-एप्लिकेशन के रूप में एक एमवीसी एप्लिकेशन बनाने का प्रयास कर रहा हूं। ये दोनों परियोजनाएं एक ही समाधान के अंदर हैं। जबकि मूल आवेदन ठीक चल रहा है, मुझे उप-एप्लिकेशन को काम करने में परेशानी हो रही है। मेरे दो web.configs के कुछ मालिश के बाद, मैं कॉन्फ़िगरेशन स्वीकार करने के लिए Asp.Net रनटाइम प्राप्त करने में सक्षम था, लेकिन मैं उपरोक्त रूट सहित एमवीसी अनुप्रयोग में किसी भी पेज/नियंत्रकों को ब्राउज़ करने में असमर्थ रहा हूं -प्लिकेशंस ("http://RootSite/SubApplicationName/")। मुझे लगातार 404 मिलते हैं।एक उप-अनुप्रयोग के रूप में एक एमवीसी आवेदन चलाना?

दरअसल, यूआरएल पर जाने पर मुझे प्रतिक्रिया मिलती है "http://RootSite/SubApplicationName/Home/Index/"। यह मुझे पुनर्निर्देश उस फ़ोल्डर में index.aspx के लिए, और इस त्रुटि फेंकता है:

The view 'Index' or its master could not be found. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx

IIS में उप आवेदन (7) काफी सीधे आगे की स्थापना की है: यह रूप में एक ही अनुप्रयोग पूल में चलाने के लिए सेट है अभिभावक ऐप, जो एकीकरण मोड में Asp.Net 2.0 चलाता है।

मेरा संदेह यह है कि मेरे पास web.configs में कुछ है जो इसे फेंक रहा है। क्या HTTP, मॉड्यूल या यूआरएल प्रमाणीकरण मॉड्यूल इत्यादि के बारे में चीजें हैं, मुझे पुष्टि करनी चाहिए कि एमवीसी के रास्ते में नहीं मिल रहा है?

इसके अलावा, global.asax.cs फ़ाइल में, डिफ़ॉल्ट मार्ग अलग होना चाहिए? डिफ़ॉल्ट रूप से, url पैरामीटर routes.MapRoute के लिए पारित किया है:

"{controller}/{action}/{id}" 

यह इतना की तरह, उप एप्लिकेशन के नाम से पहले किया जाना चाहिए?

"SubApplicationName/{controller}/{action}/{id}" 

मैंने इस तरह के बदलाव का प्रयास किया, लेकिन यह चीजों को ठीक नहीं किया।

किसी भी विचार की बहुत सराहना की जाती है। साथ ही, एक उप-अनुप्रयोग के रूप में एक एमवीसी वेब अनुप्रयोग स्थापित करने के बारे में सामान्य जानकारी बहुत अच्छी होगी।

धन्यवाद।

उत्तर

1

मैंने कुछ ऐसा ही किया, हालांकि ऐसा नहीं, मुझे अलग डीएल से विचार लोड करना पड़ा। मेरे मामले में यह एक क्लास लाइब्रेरी थी, न कि एक अलग वेब ऐप, लेकिन इसे वही काम करना चाहिए जहां तक ​​मुझे पता है।

सबसे पहले आपको ऐसा करना है कि रूटिंग इंजन को यह बताएं कि उप-प्रस्तुति दृश्यों में अपनी सामग्री को कैसे देखना है, वर्चुअलपाथ प्रदाता बनाना है। ऐसा करने के तरीके का एक बड़ा स्पष्टीकरण यहां पाया जा सकता है:

http://www.wynia.org/wordpress/2008/12/05/aspnet-mvc-plugins/

मुझे यकीन है कि मिल जाएगा आप शुरू कर रहा हूँ;)

+0

धन्यवाद! मैं इसे पढ़ूंगा और आपको बता दूंगा कि यह मेरे लिए काम करता है या नहीं। – Moskie

+0

यह पहली बार थोड़ा मुश्किल दिखता है लेकिन वह पोस्ट गुणवत्ता है और आप इसके विजुअल स्टूडियो समाधान को डाउनलोड कर सकते हैं ताकि आप चारों ओर खेल सकें;) – antonioh

+0

मैं जो भी बताता हूं वह मेरे मुद्दे को हल नहीं करता है। मैं जो चाहता हूं वह एक मानक Asp.Net वेब एप्लिकेशन में उप-एप्लिकेशन है जो एक एमवीसी ऐप है। वह क्या कर रहा है कि उसके पास एक एमवीसी ऐप एक अन्य एमवीसी डीएलएल का उपयोग करने के लिए एक डीएलएल संदर्भ है। लेकिन यह उस रिश्ते को संबोधित नहीं करता है जो मैं यहां से कर रहा हूं ... मुझे नहीं लगता। – Moskie

0

सुनिश्चित करें कि आप में वर्तनी की गलतियां नहीं किया है आपकी दृश्य निर्देशिका के नाम। मुझे एक ही त्रुटि संदेश प्राप्त हो रहा था और 30 मिनट के सिर स्क्रैचिंग के बाद एहसास हुआ कि मैंने अपने दृश्यों में से किसी एक के लिए फ़ोल्डर नाम गलत वर्तनी की है। आईडीई ने इसे किसी भी सार्थक तरीके से नहीं उठाया (यानी यह अच्छा होगा अगर यह स्पष्ट रूप से मुझे बताया गया कि जिस दृश्य को मैं संदर्भित कर रहा था वह सही नहीं था - "नहीं मिला" कुछ अलग-अलग चीजों का मतलब हो सकता है)।

0

उप एप्लिकेशन सीधे एमवीसी वेब एप्लिकेशन के लिए उपयुक्त नहीं है। आपको global.asax में बहुत सारे हैक कोड लिखना होगा। उप एप्लिकेशन के बजाय उप डोमेन का उपयोग करें।

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