কীভাবে এএসপি.নেটে ডিফল্ট পৃষ্ঠা সেট করবেন?


127

এমন কোনও বিভাগ বা কোড রয়েছে যা আমাদের ডিফল্ট পৃষ্ঠা সেট করতে দেয় web.config?

উদাহরণস্বরূপ, লোকেরা যখন প্রথম আমার ওয়েবসাইটটিতে যায় তখন আমি তাদের CreateThing.aspxচেয়ে বরং সেগুলি দেখতে চাই Default.aspx

সমাধানগুলি আমি ইতিমধ্যে জানি:

  1. => কোড এই লাইন রাখুন Response.Redirect("CreateThings.aspx")মধ্যে Default.aspx Page_Loadঘটনা কিন্তু এই পদ্ধতি সত্যিই সরল নয়।

  2. আমরা আইআইএস (ডিফল্ট পৃষ্ঠা কনফিগারেশন) ব্যবহার করতে পারি তবে আমি আমার এএসপি.নেট অ্যাপ্লিকেশনটিতে একই জিনিসটি করতে চাই।

  3. এটি আপাতত আর একটি সমাধান হতে পারে:

    <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>

উত্তর:


239

আইআইএস 7 বা আইআইএস 7.5 ব্যবহার করে আপনি ব্যবহার করতে পারেন

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

https://docs.microsoft.com/en-us/iis/configuration/system.webServer/defaultDocument/


5
আমি খুঁজে পেয়েছি যে আমার ডিফল্ট ডকুমেন্ট ট্যাগে সক্ষম = "সত্য" বৈশিষ্ট্য যুক্ত করতে হবে যেমন: <ডিফল্ট ডকুমেন্ট সক্ষম = "সত্য">
জন ফার্গুসন

@ জনফারগুসন চিয়ার্স এর জন্য
নিক

2
এটি ওয়েবকনফিগ ফাইলের <কনফিগারেশন> ট্যাগে রাখতে হবে।
মিকাউল মায়ার

ডিফল্ট.এএসপিএক্স অন্য ফোল্ডারে থাকলে এই কাজ করবে? উদাহরণস্বরূপ: <মান যোগ করুন = "/ নিউসাইট / ডিফল্ট.এএসপিএক্স" />
অ্যাপোলো

আইআইএস 8 এর সাথেও কাজ করে।
ওলএফএসআরপ

23

টিপ # 84: আপনি কি জানেন ... ভিজুয়াল ওয়েব বিকাশকারীতে আপনার ওয়েব সাইটের জন্য একটি সূচনা পৃষ্ঠা কীভাবে সেট করবেন?

আপনি যে পৃষ্ঠার সূচনা পৃষ্ঠা হতে চান তাতে কেবল ডান ক্লিক করুন এবং "শুরু পৃষ্ঠা হিসাবে সেট করুন" বলুন।

এমএসএফটি - অ্যাডাম টিউলিপারের নীচে মন্তব্যে যেমন উল্লেখ করা হয়েছে, এটি কেবল ডিবাগিংয়ের জন্য কাজ করে, মোতায়েনের জন্য নয় not


1
হুম। স্থানীয়ভাবে কাজ করে তবে আমি অ্যাজুরেতে মোতায়েন করার পরে নয়।
বিবেক মহারাজ

গৃহীত উত্তরটি আমার পক্ষে কাজ করে নি, তবে এটি হয়েছে! ধন্যবাদ!
jnel899

6
@ বিবেকমহরজ এটি ডিফল্ট ছিল না কারণ এটি পরীক্ষা / ডিবাগিংয়ের জন্য বোঝানো হয়েছে - এই কৌশলটি কেবলমাত্র আপনার বিকাশের পরিবেশকে আপনার ওয়েব সার্ভারটি কনফিগার করে না।
অ্যাডাম টিউলিপার - এমএসএফটি

ব্যবহারকারীরা ডিরেক্টরিতে নিজে অ্যাক্সেস করলে পুনঃনির্দেশে সহায়তা করে না।
ম্যালকম সালভাদোর

9

মানচিত্র ডিফল্ট.এএসপিএক্সকে এইচটিপিহ্যান্ডলার রুট হিসাবে এবং HTTPHandler এর মধ্যে থেকে ক্রিয়েটহিংস.এএসপেক্সে পুনর্নির্দেশ।

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

আপনার অ্যাপ্লিকেশন রুটে Default.aspx শারীরিকভাবে বিদ্যমান নেই তা নিশ্চিত করুন । এটি যদি শারীরিকভাবে বিদ্যমান থাকে তবে এইচটিপিএইচড্যান্ডলারকে কার্যকর করার কোনও সুযোগ দেওয়া হবে না। শারীরিক ফাইলটি এইচটিপিহ্যান্ডলার ম্যাপিংকে ওভাররাইড করে।

তবুও আপনি এটি ডিফল্ট.এসপিএক্স ব্যতীত অন্য পৃষ্ঠাগুলির জন্য পুনরায় ব্যবহার করতে পারেন।

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

আপনার অ্যাপ_কোডে //RedirectHandler.cs

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
}

সুতরাং, আপনি বলেছেন যে যখনই কোনও অনুরোধ ঘটে Default.aspxতখন হ্যান্ডলার অনুরোধটি পুনর্নির্দেশ করবে CreateThing.aspx। এটি একটি জেনেরিক সমাধান দেখায়। ধন্যবাদ.
তারিক

তবে এটি কি এইচটিপিহ্যান্ডলার দূষণের কারণ হবে?
তারিক

আপনার সম্পাদনার পরে, আমাকে বলতে হবে: ভাল এটি হতে পারে। আমি মনে করি সহজ জিনিসটি Application.Run(new Form()1):) এর মতো হবে :)
তারিক

@ অ্যারন: আপনি সর্বদা একটি কাস্টম কনফিগারেশন বিভাগ তৈরি করতে পারেন যা আপনাকে HttpHandlerবিভিন্ন বিভিন্ন অনুরোধের জন্য কনফিগার করবে । আপনি সমস্ত * .aspx অনুরোধগুলিও ধরতে পারেন এবং অনুরোধটি আপনার কোনও কনফিগার করা URL এর সাথে মেলে কিনা। অন্যথায় এটি মাধ্যমে পাস করুন।
রবার্ট কোরিটনিক

4

আপনি যদি ফর্ম প্রমাণীকরণ ব্যবহার করে থাকেন তবে আপনি নীচের কোডটি চেষ্টা করতে পারেন:

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

ফর্ম প্রমাণীকরণ ব্যবহার করতে, আমি কি সরবরাহকারীদের সদস্যপদ বা স্টাফ ব্যবহার করব? আমি বলতে চাইছি যখন আমি উইন্ডোগুলির পরিবর্তে ফর্ম হিসাবে কেবল প্রমাণীকরণ মোডটি নির্বাচন করি, এই কোডটি আকর্ষণীয়ভাবে কাজ করবে?
তারিক

আমি বলব যে এটি সমাধানের উপর নির্ভর করে। আপনার যদি বিভিন্ন ব্যবহারকারী প্রোফাইলের সাথে আরও জটিল সমাধানের প্রয়োজন হয় তবে আপনার সদস্যপদ প্রদানকারীদের সাথে যাওয়া উচিত। তবে এটি যদি আরও সাধারণ সেটআপ হয় তবে আপনি <ব্যবহারকারীদের অনুমতি দিন "" "/> এবং <ব্যবহারকারীদের অস্বীকার করুন" "/> ব্যবহার করতে পারেন।
জোকিং

3

আপনি যদি নিজের ওয়েবসাইটে লগইন পৃষ্ঠা ব্যবহার করছেন তবে ওয়েবকনফিগ ফাইলে যান

<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>

3

আপনি ওয়েবকনফিগ ব্যবহার করে আইআইএস ডিফল্ট ডকুমেন্ট সেটিংটি ওভাররাইড করতে পারেন

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

বা আইআইএস ব্যবহার করে, http://www.iis.net/configreferences/system.webserver/defaultdocament জন্য লিঙ্কটি উল্লেখ করুন


1

আমি নিম্নলিখিত পদ্ধতিটি ব্যবহার করতে পছন্দ করি:

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

1

আমি উপরের সমস্ত সমাধান করেছিলাম কিন্তু এটি কার্যকর হয়নি।

আমার ডিফল্ট পৃষ্ঠাটি একটি এসপেক্স পৃষ্ঠা ছিল না, এটি একটি এইচটিএমএল পৃষ্ঠা ছিল।

এই নিবন্ধটি সমস্যার সমাধান করেছে। 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 }
    );
}

আশা করি এটি কারও সাহায্য করবে, উত্তরটি খুঁজে পেতে আমাকে বেশ ভাল লেগেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.