Создание веб-страницы в качестве страницы по умолчанию для имени сервера, на котором размещено приложение - PullRequest
1 голос
/ 02 сентября 2010

Предположим, у меня есть сервер с каким-то виртуальным именем как ABC.А также у меня есть веб-приложение .Net XYZ с некоторыми страницами .aspx, такими как Home.aspx и т. Д. Теперь, если я хочу сделать страницу Home.aspx страницей по умолчанию при вводе имени сервера в браузере, автоматически открывается Home.aspx.что мне нужно сделать в этом случае.

В настоящее время Iam обращается к приложению с этим URL-адресом https://ABC/XYZ/Home.aspx Но я хочу получить доступ к приложению следующим образом: http://ABC

Ответы [ 6 ]

3 голосов
/ 11 сентября 2010

В IIS нет способа получить:

https://ABC/XYZ/Home.aspx

указывать на:

https://ABC

потому что XYZ / Home.aspx не является допустимым "документом по умолчанию". Документы по умолчанию должны находиться в одной папке.

Если вы пытаетесь получить:

https://ABC/XYZ/Home.aspx

указывать на:

https://ABC/XYZ

тогда посмотрите ответ егласиуса.

В противном случае вам нужно будет установить Default.aspx в качестве документа по умолчанию.

Затем создайте файл Default.aspx в корневой папке вашего сайта, содержащий:

<%@ page language="C#" %>
<%
Server.Transfer("/XYZ/Home.aspx");
%>
3 голосов
/ 06 сентября 2010

Я не уверен, в какой версии iis вы работаете, но в диспетчере iis 7:

  • Выберите сайт, который отвечает на URL / который может быть "веб-сайтом по умолчанию" в зависимости от вашей настройки
  • Открыть опцию «Документ по умолчанию»
  • Выберите действие Добавить и введите Home.aspx. Если вы уже видите его в списке, вам может потребоваться переместить его вверх, если что-то еще предпочтет (выберите Home.aspx, а справа нажмите действие перемещения вверх)

В предыдущих версиях IIS делали то же самое, но из свойств сайта.

1 голос
/ 13 сентября 2010

Вы можете сделать это с помощью перезаписи URL в IIS. Смотри http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

1 голос
/ 13 сентября 2010

В IIS вы можете установить документы по умолчанию на вкладке документов. На этой вкладке вы можете настроить home.aspx для распознавания в качестве документа по умолчанию для загрузки. Однако , вы не можете установить файл вниз по дереву в качестве документа по умолчанию для загрузки при переходе в корень сайта. Для этого вам придется перенаправить.

Вы можете сделать это двумя способами:

  1. Пусть IIS сделает это .

  2. Сделай сам.

Имея документ default.aspx в корне сервера ABC и перенаправив его в /xyz/home.aspx или просто / xyz и установив в папке xyz в IIS, чтобы home.aspx находился в списке документов по умолчанию ,

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

Вы также можете использовать Response.Transfer, но он не изменит URL.

1 голос
/ 10 сентября 2010

Один из самых простых способов - объявить документ по умолчанию в вашем web.config.

Подробнее см .: http://blogs.iis.net/bills/archive/2008/03/22/how-to-add-a-default-document-with-iis7-web-config.aspx

0 голосов
/ 13 сентября 2010

вы можете сделать:
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

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...