【问题标题】:Set .ashx as start "page" for web application将 .ashx 设置为 Web 应用程序的起始“页面”
【发布时间】:2009-01-18 00:05:03
【问题描述】:

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

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

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

编辑 - 重新启动 IIS 并运行。

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

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

【问题讨论】:

  • 我认为您也可以在 web.config 中定义默认文档,如我的回答中所述,开发网络服务器应该尊重这一点。

标签: web-applications default ihttphandler


【解决方案1】:

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

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

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

更多信息在this blog post

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


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

.

【讨论】:

  • 我截图文件的原始内容丢失了,如果有人可以重新截图,我可以找到一个更好的主机。
【解决方案2】:

只需在默认应用服务器(如 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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-02
      • 2017-10-30
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多