Установите .ashx в качестве начальной “страницы” для веб-приложения
-
19-08-2019 - |
Вопрос
Можно ли установить файл .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.вероятно, вы сможете развернуть его так же, как любое другое веб-приложение.