httpModules httphandle
httpModules httphandle
最近要给客户迁移他的网站,因为之前有独立的服务器,可以设置iis绑定空主机头,所有url可以实现无限子域名,但是现在要更换服务器到虚拟主机上,就不能绑定空主机头了,但是之前的子域名必须保证还可以访问.
后来就想到可以利用HTTPmodules来实现一个url的转发.顺便再详细了解一下他们的概念.
1.httpModules(Http模块,可以在页面处理前后、应用程序初始化、出错等时候加入自己的事件处理程序)
2.Httphandle(处理具体后缀的文件)
3. HttpHandlerFactory (用来创建Http处理程序,创建的同时可以附加自己的事件处理程序)
<add name="ModuleName"
type=".NET Class, Assembly [,Version=version number]
[,Culture=culture] [,PublicKeyToken=token]"/>
属性
属性 | 说明 |
name | 必选的属性。 为模块提供一个好记的名称,这使您可为 global.asax 文件内的模块事件关联一个事件处理程序。 |
type | 必选的属性。 指定由版本、程序集和公钥标记组成的逗号分隔的类/程序集组合。ASP.NET 首先在应用程序的专用 \bin 目录中搜索程序集 DLL,然后在系统程序集缓存中搜索程序集 DLL。 |
Machine.config是在IIS第一次访问ASP.net时
Web.config 是在第一次访问虚拟目录所代表的应用程序时加载
还有Web.config 发生变化时
代码如下:
public class UrlHttpModule : IHttpModule
{
public void Init(HttpApplication application)
{
application.BeginRequest += new EventHandler(Application_BeginRequest);
}
private void Application_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
HttpRequest request = application.Request;
HttpResponse response = application.Response;
string[] url = request.Url.Host.Split('.');
if (url.Length == 4)
{
response.Redirect("http://www.xxx.com/Merchant/?domain=" + url[1]);
}
//response.Write(request.Url.Host + url.Length);
//response.Redirect("/");
}
public void Dispose()
{
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)