web.config
にデフォルトページを設定できるセクションまたはコードはありますか?
たとえば、人々が最初に私のウェブサイトにアクセスするとき、CreateThing.aspx
ではなくDefault.aspx
を見るようにします。
私がすでに知っている解決策:
このコード行をDefault.aspx
Page_Load
イベントに=> Response.Redirect("CreateThings.aspx")
入れますが、このメソッドは本当に素朴です。
IIS(デフォルトのページ構成)を使用できますが、ASP.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>
IIS 7またはIIS 7.5を使用する場合は、使用できます
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="CreateThing.aspx" />
</files>
</defaultDocument>
</system.webServer>
http://www.iis.net/ConfigReference/system.webServer/defaultDocument
ヒント#84:ご存知ですか... Visual Web DeveloperでWebサイトのスタートページを設定する方法?
開始ページにするページを右クリックし、「開始ページとして設定」と言うだけです。
以下のAdam Tuliper-MSFTのコメントで述べたように、これはデバッグではなく展開のためにのみ機能します。
Default.aspxをHttpHandler routeとしてマップし、HttpHandler内からCreateThings.aspxにリダイレクトします。
<add verb="GET" path="default.aspx" type="RedirectHandler"/>
Default.aspxがアプリケーションルートに物理的に存在しないことを確認してください。物理的に存在する場合、HttpHandlerは実行する機会を与えられません。物理ファイルはHttpHandlerマッピングをオーバーライドします。
さらに、default.aspx以外のページでこれを再利用できます。
<add verb="GET" path="index.aspx" type="RedirectHandler"/>
// App_Codeの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
}
フォーム認証を使用している場合、次のコードを試すことができます。
<authentication mode="Forms">
<forms name=".FORM" loginUrl="Login.aspx" defaultUrl="CreateThings.aspx" protection="All" timeout="30" path="/">
</forms>
</authentication>
Web.configを使用して、IISのデフォルトのドキュメント設定をオーバーライドできます
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="DefaultPageToBeSet.aspx" />
</files>
</defaultDocument>
</system.webServer>
または、IISを使用して、参照用のリンクを参照してください http://www.iis.net/configreference/system.webserver/defaultdocument
webサイトでログインページを使用している場合は、web.configファイルに移動します
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="index.aspx" >
</forms>
</authentication>
認証タグを上記に置き換えます(index.aspxがスタートアップページになります)
そしてもう1つ、これをweb.configファイルに書き込みます
<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>
上記のソリューションをすべて実行しましたが、うまくいきませんでした。
私のデフォルトページはaspxページではなく、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 }
);
}
これが誰かを助けることを願っています、答えを見つけるのにかなり時間がかかりました。
私は次の方法を使用することを好みます:
system.webServer>
<defaultDocument>
<files>
<clear />
<add value="CreateThing.aspx" />
</files>
</defaultDocument>
</system.webServer>