2009-12-16 10 views
119

में डिफ़ॉल्ट पृष्ठ सेट करें क्या कोई अनुभाग या कोड है जो हमें web.config में डिफ़ॉल्ट पृष्ठ सेट करने की अनुमति देता है?Asp.net

उदाहरण के लिए, जब लोग पहली बार मेरी वेबसाइट पर जाते हैं, तो मैं उन्हें के बजाय CreateThing.aspx देखना चाहता हूं।

समाधान मुझे पता है:

  1. Default.aspxPage_Load घटना में कोड =>Response.Redirect("CreateThings.aspx") की इस पंक्ति में कहें लेकिन इस पद्धति वास्तव में अनुभवहीन है।

  2. हम IIS (डिफ़ॉल्ट पृष्ठ कॉन्फ़िगरेशन) का उपयोग कर सकते हैं लेकिन मैं Asp.NET एप्लिकेशन पर एक ही चीज़ करना चाहता हूं।

यदि आप एक बेहतर समाधान जानते हैं, तो कृपया मुझे बताएं।

अग्रिम धन्यवाद।

पी.एस: कारण है कि मैं पूछ रहा हूँ के बारे में Web.Config मेरा मानना ​​है कि Web.Config इस के माध्यम से हमें मदद मिलेगी है।

संपादित: मैं बस सोच रहा हूँ कैसे Microsoft .NET टीम इस तरह के एक सरल बात :) भूल

संपादित करें:

<defaultDocument> 
    <files> 
     <clear /> 
     <add value="Default.aspx" /> 
     <add value="Default.htm" /> 
     <add value="Default.asp" /> 
     <add value="index.htm" /> 
     <add value="index.html" /> 
     <add value="iisstart.htm" /> 
    </files> 
</defaultDocument> 
:

यह अब के लिए एक और समाधान हो सकता है

उत्तर

229

आईआईएस 7 या आईआईएस 7 का उपयोग कर रहे हैं।5 आप

<system.webServer> 
    <defaultDocument> 
    <files> 
     <clear /> 
     <add value="CreateThing.aspx" /> 
    </files> 
    </defaultDocument> 
</system.webServer> 

http://www.iis.net/ConfigReference/system.webServer/defaultDocument

+5

मुझे पता चला कि मुझे डिफ़ॉल्ट डॉक्यूमेंट टैग i.e में सक्षम = "सत्य" विशेषता जोड़ने की आवश्यकता है।

+0

@JohnFerguson Cheers इसके लिए। –

+1

मेरे लिए यह <कॉन्फ़िगरेशन> टैग के बिना काम नहीं किया। – user1080381

9

मानचित्र डिफ़ॉल्ट.aspx एचटीपीएचंडलर मार्ग और रीडायरेक्ट करने के लिए HttpHandler के भीतर से CreateThings.aspx बनाएँ।

<add verb="GET" path="default.aspx" type="RedirectHandler"/> 

यकीन Default.aspx नहीं आपके आवेदन जड़ पर शारीरिक रूप से मौजूद है सुनिश्चित करें। यदि यह भौतिक रूप से है, तो HttpHandler को निष्पादित करने का मौका नहीं दिया जाएगा। भौतिक फ़ाइल HttpHandler मानचित्रण को ओवरराइड करता है।

इसके अलावा आप डिफ़ॉल्ट.aspx के अलावा अन्य पृष्ठों के लिए इसका पुनः उपयोग कर सकते हैं।

<add verb="GET" path="index.aspx" type="RedirectHandler"/> 

अपने App_Code

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

/// <summary> 
/// Summary description for RedirectHandler 
/// </summary> 
public class RedirectHandler : IHttpHandler 
{ 
    public RedirectHandler() 
    { 
     // 
     // TODO: Add constructor logic here 
     // 
    } 

    #region IHttpHandler Members 

    public bool IsReusable 
    { 
     get { return true; } 
    } 

    public void ProcessRequest(HttpContext context) 
    { 
     context.Response.Redirect("CreateThings.aspx"); 
     context.Response.End(); 
    } 

    #endregion 
} 
+0

तो, आप कहते हैं कि जब कभी भी 'Default.aspx' का अनुरोध होता है, तो हैंडलर अनुरोध को 'CreateThing.aspx' पर रीडायरेक्ट करेगा। यह एक सामान्य समाधान दिखता है। धन्यवाद। – Tarik

+0

लेकिन क्या यह एचटीपीएचंडलर प्रदूषण का कारण बनता है? – Tarik

+0

आपके संपादन के बाद, मुझे यह कहना होगा: ठीक है यह हो सकता है। मुझे लगता है कि सरल बात 'एप्लिकेशन' की तरह होगी। रुन (नया फॉर्म() 1) ':) – Tarik

4

में //RedirectHandler.cs आप रूपों प्रमाणीकरण का उपयोग कर रहे हैं तो आप नीचे दिए गए कोड की कोशिश कर सकते:

<authentication mode="Forms"> 
<forms name=".FORM" loginUrl="Login.aspx" defaultUrl="CreateThings.aspx" protection="All" timeout="30" path="/"> 
</forms> 
</authentication> 
+0

प्रपत्र प्रमाणीकरण का उपयोग करने के लिए, क्या मुझे प्रदाता सदस्यशिप या सामान का उपयोग करना चाहिए? मेरा मतलब है कि जब मैं विंडोज के बजाय प्रपत्र के रूप में प्रमाणीकरण मोड का चयन करता हूं, तो यह कोड आकर्षक तरीके से काम करेगा? – Tarik

+7

यदि आप इसमें आकर्षण डालते हैं तो सब कुछ आकर्षक काम करता है। ;) –

+0

मैं कहूंगा कि यह समाधान पर निर्भर करता है। यदि आपको विभिन्न उपयोगकर्ता प्रोफाइल के साथ एक अधिक जटिल समाधान की आवश्यकता है तो आपको सदस्यता प्रदाता के साथ जाना चाहिए। लेकिन अगर यह एक और आसान सेटअप है तो आप केवल <उपयोगकर्ताओं को अनुमति दें "" /> और का उपयोग कर सकते हैं। – Zooking

23

Tip #84: Did you know… How to set a Start page for your Web Site in Visual Web Developer?

पृष्ठ पर आप राइट क्लिक उपयोग कर सकते हैं कि आप प्रारंभ पृष्ठ हो सकता है और कहते हैं कि "प्रारंभ पृष्ठ के रूप में सेट" करना चाहते हैं।

+0

हम्म होना चाहता हूं। स्थानीय रूप से काम करता है, लेकिन मैं अज़ूर पर तैनाती के बाद नहीं। –

+0

स्वीकृत उत्तर नहीं था मेरे लिए काम करें, लेकिन ऐसा हुआ! धन्यवाद! – jnel899

+5

@ विवेकमहरज यह डिफ़ॉल्ट नहीं था क्योंकि यह परीक्षण/डिबगिंग के लिए है - यह तकनीक आपके वेब सर्वर को केवल आपके विकास पर्यावरण को कॉन्फ़िगर नहीं करती है। –

2

यदि आप अपनी वेबसाइट में प्रवेश पृष्ठ का उपयोग कर रहे web.config फ़ाइल के लिए जाना

<authentication mode="Forms"> 
    <forms loginUrl="login.aspx" defaultUrl="index.aspx" > 
    </forms> 
</authentication> 

ऊपर

और एक और (जहां index.aspx अपना स्टार्टअप पृष्ठ हो जाएगा) के लिए अपने प्रमाणीकरण टैग को बदलने बात अंदर

<configuration> 
    <system.webServer> 
    <defaultDocument> 
    <files> 
    <clear /> 
    <add value="index.aspx" /> 
    </files> 
    </defaultDocument> 
    </system.webServer> 

    <location path="index.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
</configuration> 
2

अपने web.config फ़ाइल में इस बारे में आप web.config

का उपयोग कर आईआईएस डिफ़ॉल्ट दस्तावेज़ सेटिंग ओवरराइड कर सकते
<system.webServer> 
    <defaultDocument> 
     <files> 
     <clear /> 
     <add value="DefaultPageToBeSet.aspx" /> 
     </files> 
    </defaultDocument> 
    </system.webServer> 

या IIS का उपयोग, संदर्भ http://www.iis.net/configreference/system.webserver/defaultdocument

1

मैं निम्न विधि का उपयोग करना पसंद के लिए लिंक देखें:

system.webServer> 
    <defaultDocument> 
    <files> 
     <clear /> 
     <add value="CreateThing.aspx" /> 
    </files> 
    </defaultDocument> 
</system.webServer> 
1

मैं सब से ऊपर समाधान किया था, लेकिन यह काम नहीं किया।

मेरा डिफ़ॉल्ट पृष्ठ एएसपीएक्स पृष्ठ नहीं था, यह एक HTML पृष्ठ था।

इस आलेख में समस्या हल हो गई। https://weblog.west-wind.com/posts/2013/aug/15/iis-default-documents-vs-aspnet-mvc-routes

मूल रूप से, मेरे \ App_Start \ RouteConfig.cs फ़ाइल में, मैं एक पंक्ति जोड़ने के लिए किया था:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.IgnoreRoute(""); // This was the line I had to add here! 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

आशा इस कोई मदद करता है, यह मुझे एक सुडौल समय लिया जवाब खोजने के लिए।