不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
Server.Transfer完美解决ASP.NET输出404页面
编辑:dnawo 日期:2012-04-16
1.问题描述
IIS上同一个网站绑定了两个主机名www.a.com和www.b.com,现在要求用www.a.com不能打开根目录下的default.ashx页面(即返回404),而www.b.com仍可正常访问。
2.解决方法
稍做修改后,default.ashx页面代码结构如下:
针对404处理程序,前后有三种思路:
①.Response.Status方法

分析:非专业用户不认可这个404页面。
②.Response.Redirect方法(404.aspx在服务器不存在)

分析:虽然这是一个标准的404页面,但是页面文件明显的变成了404.aspx,而不是default.ashx。
③.Response.Transfer方法(404.aspx在服务器不存在)

分析:解决了第②个方法中存在的不足,完美的解决了ASP.NET输出404页面的问题。
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;
}
}
}
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>");
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 | 引用: 0 | 查看次数: 4673
发表评论
请登录后再发表评论!