首页 新闻 会员 周边

Ashx文件为什么提示找不到网页,急!

0
悬赏园豆:30 [已解决问题] 解决于 2009-06-09 20:49

我用的虚拟主机,上传到服务器上后访问.ashx出现404错误。

原因是我的虚拟主机IIS没有添加对.ashx的支持。

联系服务商,不予添加,请问,我可以利用web.config进行处理么?

急!

Ropean的主页 Ropean | 初学一级 | 园豆:121
提问于:2009-06-08 10:38
< >
分享
最佳答案
0

支持asp.net的主机没道理不支持.ashx,这是asp.net服务器默认解析的,是最基本的东西,如果运营商不给支持,那就应该要求退款,必要时可让消协介入。

技术上来说,ashx上可以做的事aspx也基本都能胜任,aspx能做的事ashx却不一定能做,如果想弄的话,不妨试试改为aspx页吧。

斯克迪亚 | 老鸟四级 |园豆:4124 | 2009-06-09 03:23
其他回答(3)
0

在IIS中是支持自定义文件后缀名的,你在网上搜一下有关网站重定向,和自定义IIS文件的扩展名,应该有解决方案的

花生1 | 园豆:872 (小虾三级) | 2009-06-08 12:44
0

在网上看到的资料希望对你有帮助,就是设置iis 和web.config

如果 ASP.NET 应用程序是在 IIS 6.0 下运行,则可以使用 HTTP 模块自定义针对 ASP.NET 所提供的资源的请求。这些资源包括 ASP.NET Web 页(.aspx 文件)、Web 服务(.asmx 文件)、ASP.NET 处理程序(.ashx 文件)和您已经映射到 ASP.NET 的任何文件类型。如果 ASP.NET 应用程序是在 IIS 7.0 下运行,则可以使用 HTTP 模块自定义针对 IIS 所提供的任何资源的请求。这不仅包括 ASP.NET 资源,还包括 HTML 文件(.htm 或 .html 文件)、图形文件等等。有关更多信息,请参见IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述和IIS 7.0 的 ASP.NET 应用程序生命周期概述。

本主题中的示例模块在任何 HTTP 请求的开始阶段都向所请求的 ASP.NET 网页中添加一个消息。在页面得到处理之后,它将添加另外一个消息。该模块还包含相应的代码,以确保它不会向针对任何其他文件类型的请求中添加文本。

每个事件处理程序都编写为该模块的私有方法。在引发已注册的事件时,ASP.NET 将调用该模块中适当的处理程序,以便将信息写入 ASP.NET 网页。

本演练还假定您使用的是 IIS 6.0 或 IIS 7.0。但是,即使您运行的是 ASP.NET Development Server,您也可以看到该模块的功能。

创建自定义 HTTP 模块类
创建一个 ASP.NET 网站并将它命名为 Handler。

如果网站还没有 App_Code 文件夹,请在该站点的根目录下创建一个这样的文件夹。

在 App_Code 目录中,创建一个名为 HelloWorldModule.vb(对于 Visual Basic)或名为 HelloWorldModule.cs(对于 C#)的类文件。

另外,如果您使用的是 Visual Studio(而不是 Visual Web Developer 速成版),则可以将 HelloWorldModule 创建为一个类库项目,对它进行编译,并将生成的程序集放到 Web 应用程序的 Bin 目录中。


将下面的代码添加到类文件中:

using System;using System.Web;public class HelloWorldModule : IHttpModule{ public HelloWorldModule() { } public String ModuleName { get { return "HelloWorldModule"; } } // In the Init function, register for HttpApplication // events by adding your handlers. public void Init(HttpApplication application) { application.BeginRequest += (new EventHandler(this.Application_BeginRequest)); application.EndRequest += (new EventHandler(this.Application_EndRequest)); } private void Application_BeginRequest(Object source, EventArgs e) { // Create HttpApplication and HttpContext objects to access // request and response properties. HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; string filePath = context.Request.FilePath; string fileExtension = VirtualPathUtility.GetExtension(filePath); if (fileExtension.Equals(".aspx")) { context.Response.Write("<h1><font color=red>" + "HelloWorldModule: Beginning of Request" + "</font></h1><hr>"); } } private void Application_EndRequest(Object source, EventArgs e) { HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; string filePath = context.Request.FilePath; string fileExtension = VirtualPathUtility.GetExtension(filePath); if (fileExtension.Equals(".aspx")) { context.Response.Write("<hr><h1><font color=red>" + "HelloWorldModule: End of Request</font></h1>"); } } public void Dispose() { }}保存并关闭类文件。

在“生成”菜单上单击“生成网站”。

如果网站未生成,请更正存在的任何问题。必须对自定义 HTTP 模块进行编译,否则无法注册该模块。

在 IIS 6.0 和 IIS 7.0 经典模式中注册 HTTP 模块
创建 HelloWorldModule 类之后,可以通过在 Web.config 文件中创建一个项来注册该模块。通过注册 HTTP 模块,可使其能够订阅请求管道通知。

在 IIS 7.0 中,应用程序可以在经典模式或集成模式下运行。在经典模式下,请求的处理方式与在 IIS 6.0 中基本相同。在集成模式下,IIS 7.0 使用管道(管道使其可以与 ASP.NET 共享请求、模块和其他功能)来管理请求。

在 IIS 7.0 经典模式和 IIS 7.0 集成模式下,注册模块的过程有所不同。本节描述与 IIS 6.0 和 IIS 7.0 经典模式相对应的过程。下一节将描述用于注册在 IIS 7.0 集成模式下运行的模块的过程。

为 IIS 6.0 和在经典模式下运行的 IIS 7.0 注册模块
如果网站还没有 Web.config 文件,请在该站点的根目录下创建一个这样的文件。

将下面突出显示的代码添加到该 Web.config 文件中:

<configuration> <system.web> <httpModules> <add name="HelloWorldModule" type="HelloWorldModule"/> </httpModules> </system.web></configuration>这段代码用 HelloWorldModule 的类名和模块名注册该模块。

为在集成模式下运行的 IIS7.0 注册模块
如果网站还没有 Web.config 文件,请在该站点的根目录下创建一个这样的文件。

将下面突出显示的代码添加到该 Web.config 文件中:

<configuration><system.webServer> <modules> <add name="HelloWorldModule" type="HelloWorldModule"/> </modules> </system.webServer></configuration>这段代码用 HelloWorldModule 的类名和模块名注册该模块。

创建并注册自定义 HTTP 模块后,可以对它进行测试。

jackyong | 园豆:149 (初学一级) | 2009-06-08 17:38
0

安装了.NET的话ashx应该默认会被支持,如果真的是IIS中没有的话也没办法,因为IIS会先于.NET处理网页。

风海迷沙 | 园豆:4453 (老鸟四级) | 2009-06-09 10:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册