是否可以将.ashx文件设置为Web应用程序的起始(或默认)页面?如果是这样,它是如何完成的?
修改 - 一些不错的建议。我已将“Default.ashx”添加到IIS默认文档和网站上的“启用默认文档”,但是,它只显示目录列表,即使我已禁用目录浏览。
任何其他建议将不胜感激。 (IIS版本5.1)
修改 - 重新启动IIS,它可以正常运行。
问题 - 我是否也可以询问是否可以从Visual Studio 2005中将起始页面设置为.ashx?在执行此操作后,我似乎无法在Visual Studio中进行调试。
答案 - 在“应用程序属性”中,可以在“Web”选项卡下选择“开始操作”。实际上,它还允许选择使用哪个服务器/端口和调试器。很酷。
答案 0 :(得分:5)
添加您的ASHX页面并确保将其移至列表顶部。
在IIS7中,您可以在web.config中指定它:
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="my_default_page.ASHX" />
</files>
</defaultDocument>
</system.webServer>
中的更多信息
编辑:正如@waves发现的那样,您可能需要在配置后重新启动IIS。
要禁用目录浏览,请取消选中“目录浏览”复选框:
答案 1 :(得分:0)
只需将它设置在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
答案 2 :(得分:0)
您可能只需要将'page'.ashx文件添加到IIS服务器设置中的默认文件列表中。您可能就像任何其他Web应用程序一样部署它。