将网页设置为托管应用程序的服务器名称的默认页面

时间:2010-09-02 09:50:19

标签: .net asp.net iis

假设我有一个服务器wid某个虚拟名称为ABC。我还有一个.Net Web应用程序XYZ,其中包含一些.aspx页面,如Home.aspx等。 现在,当我在浏览器中键入服务器名称时,如果我想将Home.aspx页面作为默认页面,Home.aspx会自动打开。在这种情况下我需要做什么。

目前我正在使用此网址访问该应用程序 https://ABC/XYZ/Home.aspx 但我想以这种方式访问​​应用程序: http://ABC

6 个答案:

答案 0 :(得分:3)

我不确定您使用的是哪种版本的iis,但是在iis 7管理器中:

  • 根据您的设置,选择响应网址/可能是“默认网站”的网站
  • 打开“默认文档”选项
  • 选择添加操作,然后输入Home.aspx。如果您已在列表中看到它,则可能需要将其向上移动(如果有其他优先选择)(选择Home.aspx,并在右侧点击上移动作)

在以前的IIS版本中,只是从网站的属性中执行相同操作。

答案 1 :(得分:3)

IIS中没有办法获得:

https://ABC/XYZ/Home.aspx

指向:

https://ABC

因为XYZ / Home.aspx不是有效的“默认文档”。默认文档必须位于同一文件夹中。

如果你想获得:

https://ABC/XYZ/Home.aspx

指向:

https://ABC/XYZ

然后看看eglasius的答案。

否则,您需要将Default.aspx设置为默认文档。

然后在您的网站根文件夹中创建一个包含以下内容的文件Default.aspx:

<%@ page language="C#" %>
<%
Server.Transfer("/XYZ/Home.aspx");
%>

答案 2 :(得分:1)

最简单的方法之一是在web.config中声明默认文档。

有关详细信息,请参阅:http://blogs.iis.net/bills/archive/2008/03/22/how-to-add-a-default-document-with-iis7-web-config.aspx

答案 3 :(得分:1)

在IIS中,您可以在文档选项卡中设置默认文档。在此选项卡中,您可以将home.aspx设置为要加载的默认文档。 但是,当您转到站点的根目录时,无法将树中的文件设置为要加载的默认文档。为此,您必须重定向。

你可以这两种方式:

  1. Have IIS do it

  2. 自己动手。

  3. 通过在ABC服务器的根目录中安装default.aspx文档并将其重定向到/xyz/home.aspx或只是/ xyz并在IIS的xyz文件夹中设置以在默认文档列表中包含home.aspx 。

    <%@ Page Language="C#" %> 
    <% Response.Redirect("path", true); %>
    

    您也可以使用Response.Transfer,但不会更改网址。

答案 4 :(得分:1)

您可以使用IIS中的URL重写来执行此操作。见http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

答案 5 :(得分:0)

你可以这样做:
1-创建一个HttpHandler并在web.config或IIS中注册它:

public class MyHandler : IHttpHandler
{
    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        //you can use any way you see good to determin that the user requestd the default document  
        //this line is not practical but just to make the idea clear
        //the following line could need more revising.

        if (context.Request.Url.ToString() == context.Request.Url.GetLeftPart(UriPartial.Authority)
            context.Server.Transfer("MyPage.Aspx");
    }
}

这是Web.Config:

  <system.web>
    <httpHandlers>
      <add verb="*" path="*" type="HandlerNameSpace.MyHandler, HandlerAssembly" />
    </httpHandlers>
  </system.web>

2-或创建一个HttpModule:

    public class MyModule : IHttpModule
{
    public void Dispose()
    {
        //Dispose
    }

    public void Init(HttpApplication context)
    {
        //hook into the requesting process and try to figure the Url


    }
}

您可以在代码AFAIK中注册

  public static IHttpModule Module = new MyModule();

    void Application_Start(object sender, EventArgs e)
    {
        base.Init();
        Module.Init(this);
        // Code that runs on application startup

    }