Установите .ashx в качестве стартовой "страницы" для веб-приложения - PullRequest
0 голосов
/ 18 января 2009

Можно ли установить файл .ashx в качестве начальной (или используемой по умолчанию) страницы для веб-приложения? Если да, то как это сделать?

Редактировать - Несколько хороших предложений. Я добавил «Default.ashx» в «Документы IIS по умолчанию» и «Включенный документ по умолчанию» на веб-сайте, однако он отображает только список каталогов, даже если я отключил просмотр каталогов.

Любые другие предложения будут оценены. (IIS версии 5.1)

Редактировать - Перезапустил IIS и все работает.

Вопрос - Могу ли я также спросить, можно ли установить начальную страницу в .ashx из Visual Studio 2005? После этого я не могу отлаживать из Visual Studio.

Ответ - В Свойствах приложения можно выбрать «Действие запуска» на вкладке «Интернет». Фактически, это также позволяет выбрать, какой сервер / порт и отладчик использовать. Очень круто.

Ответы [ 3 ]

5 голосов
/ 18 января 2009

Добавьте свою страницу ASHX и убедитесь, что вы переместили ее в начало списка.

А в IIS7 вы можете указать это в web.config:

<system.webServer>
    <defaultDocument>
        <files>
            <clear />
            <add value="my_default_page.ASHX" />
        </files>
    </defaultDocument>
</system.webServer>    

Больше информации в этом блоге

РЕДАКТИРОВАТЬ: Как обнаружил @waves, вам может потребоваться перезапустить IIS после настройки.


Чтобы отключить просмотр каталогов, снимите флажок «Просмотр каталогов»:

.

0 голосов
/ 18 января 2009

вам может потребоваться просто добавить файл 'page'.ashx в список файлов по умолчанию в настройках сервера IIS. вы, вероятно, сможете развернуть его, как любое другое веб-приложение.

0 голосов
/ 18 января 2009

Просто установите его на сервере приложений по умолчанию, таком как IIS, если вы хотите создать обработчик для ashx, который вы можете сделать следующим образом:

Итак, начнем с создания rss.ashx

<!--WebHandler Language="C#" Class="KBMentor2.RSSHandler"-->

Теперь давайте взглянем на класс обработчика:

RSSHandler.cs

namespace KBMentor2
{
    using System;
    using System.IO;
    using System.Web;


    public class RSSHandler : IHttpHandler
    {
        public void ProcessRequest (HttpContext context)
        {   
            context.Response.ContentType = "text/xml";
            context.Response.ContentEncoding = System.Text.Encoding.UTF8;

            string sXml = BuildXMLString(); //not showing this function, 
            //but it creates the XML string

            context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(600));
            context.Response.Cache.SetCacheability(HttpCacheability.Public);
            context.Response.Write( sXml );
        }

        public bool IsReusable
        {
            get { return true; }
        }

    }

}

И вот оно у вас есть. Похоже на первый код, который мы создали, не так ли? Что касается кеширования, вы можете решить его, открыв объект Cache из вашего кода, см. Вызовы context.Response.Cache.

исходный код: aspcode.net

...