欢迎光临

木子屋

标题: Server.Transfer完美解决ASP.NET输出404页面

作者: dnawo

日期: 2012-04-16 06:39 PM

分类: Web编程

内容: 1.问题描述
IIS上同一个网站绑定了两个主机名www.a.com和www.b.com，现在要求用www.a.com不能打开根目录下的default.ashx页面(即返回404)，而www.b.com仍可正常访问。
2.解决方法
稍做修改后，default.ashx页面代码结构如下：
复制内容到剪贴板 程序代码<%@ WebHandler Language="C#" Class="Default" %>
using System;
using System.Web;
public class Default : IHttpHandler {

public void ProcessRequest (HttpContext context) {

if (context.Request.ServerVariables["HTTP_HOST"].Equals("www.a.com", StringComparison.CurrentCultureIgnoreCase))
{
//404处理程序
context.Response.End();
}
context.Response.Write("Hello,World!");

}

public bool IsReusable {
get {
return false;
}
}
}
针对404处理程序，前后有三种思路：
①.Response.Status方法
复制内容到剪贴板 程序代码context.Response.StatusCode = 404;
context.Response.Status = "404 Not Found";
context.Response.Write("<b>404 Not Found</a>");
分析：非专业用户不认可这个404页面。
②.Response.Redirect方法(404.aspx在服务器不存在)
复制内容到剪贴板 程序代码context.Response.Redirect("404.aspx");
分析：虽然这是一个标准的404页面，但是页面文件明显的变成了404.aspx，而不是default.ashx。
③.Response.Transfer方法(404.aspx在服务器不存在)
复制内容到剪贴板 程序代码context.Server.Transfer("404.aspx");
分析：解决了第②个方法中存在的不足，完美的解决了ASP.NET输出404页面的问题。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 4.867 ms

返回

标题: Server.Transfer完美解决ASP.NET输出404页面

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 4.867 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 5.020 ms

返回