Установите .ashx в качестве начальной “страницы” для веб-приложения

StackOverflow https://stackoverflow.com/questions/454343

Вопрос

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

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

Будем признательны за любые другие предложения.(IIS Версии 5.1)

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

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

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

Это было полезно?

Решение

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

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

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

Более подробная информация в это сообщение в блоге

Редактировать: Как обнаружил @waves, возможно, вам потребуется перезапустить IIS после настройки.


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

.

Другие советы

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

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

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

Теперь давайте взглянем на класс handler:

Обработчик данных.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; }
        }

    }

}

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

исходным кодом для кода является: aspcode.net

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top