0

是否可以将 .ashx 文件设置为 Web 应用程序的起始(或默认)页面?如果是这样,它是如何完成的?

编辑- 一些好的建议。我在网站上的 IIS 默认文档和“启用的默认文档”中添加了“Default.ashx”,但是,即使我禁用了目录浏览,它也只显示目录列表。

任何其他建议将不胜感激。(IIS 5.1 版)

编辑- 重新启动 IIS 并且它可以工作。

问题- 请问是否可以在 Visual Studio 2005 中将起始页设置为 .ashx?执行此操作后,我似乎无法从 Visual Studio 中进行调试。

答案- 在应用程序属性中,可以在“Web”选项卡下选择“开始操作”。事实上,它还允许选择使用哪个 Server/Port 和 Debugger。很酷。

4

3 回答 3

5

添加您的 ASHX 页面并确保将其移至列表顶部。

而在 IIS7 中,您可以在 web.config 中指定它:

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

此博客文章中的更多信息

编辑:正如@waves 发现的那样,您可能需要在配置后重新启动 IIS。


要禁用目录浏览,请取消选中“目录浏览”复选框:

.

于 2009-01-18T01:09:22.857 回答
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

于 2009-01-18T00:39:08.017 回答
0

您可能只需将 'page'.ashx 文件添加到 IIS 服务器设置中的默认文件列表中。您可能能够像部署任何其他 Web 应用程序一样部署它。

于 2009-01-18T00:41:22.040 回答