对于高手来说,这个问题是老生常谈了
可我一直很困惑,不知道如何在c#写的asp.net中实现; 占时使用的是三方的 ISAPI_Rewrite,这样才程序中有很多就发挥不了效果了
....
请教各位大虾,如何在c#写的asp.net程序中实现 url的重写功能能 ! 问题解决着有分 !!!
最简单的
http://support.microsoft.com/kb/308001/zh-cn:
HOW TO:使用 Visual C# .NET 创建 ASP.NET HTTP 处理程序
概要
本分步指南演示如何使用 Visual C# .NET 创建简单的自定义 HTTP 处理程序。本文演示如何创建、部署和配置该处理程序。
实现处理程序
1. | 打开 Microsoft Visual Studio .NET。 在 Visual C# .NET 中,新建一个名为 MyHandler 的类库项目。 |
2. | 设置一个对 System.Web.dll 程序集的引用。 |
3. | 将以下指令添加到该类中:
|
4. | 重命名类 SyncHandler.cs,然后相应地更改类定义。 |
5. | 实现 IHttpHandler 接口。您的类定义应如下所示:
|
6. | 实现 IHttpHandler 接口的 IsReusable 属性和 ProcessRequest 方法。因为这是一个同步处理程序,所以为 IsReusable 属性返回 False 以使该处理程序不共用。
|
7. | 编译项目。 |
部署处理程序
1. | 在 C:\Inetpub\Wwwroot 目录下新建一个名为 Handler 的目录。 | ||||||||||||||
2. | 在新创建的 Handler 目录下创建一个 Bin 子目录。结果形成的路径是 C:\Inetpub\Wwwroot\Handler\Bin。 | ||||||||||||||
3. | 将 MyHandler.dll 从项目的 Bin\Debug 目录复制到 C:\Inetpub\Wwwroot\Handler\Bin 目录。 | ||||||||||||||
4. | 按照下面的步骤将新的 Handler 目录标记为一个 Web 应用程序:
| ||||||||||||||
5. | 按照下列步骤为该处理程序创建一个应用程序映射。对于此处理程序,为 *.sync 扩展名创建一个到 Aspnet_isapi.dll 文件的映射。每当请求 .sync 文件时,该请求就会被路由到 ASP.NET,由 ASP.NET 执行处理程序中的代码。
| ||||||||||||||
6. | 关闭 Internet 服务管理器。 |
配置系统
1. | 在 C:\Inetpub\Wwwroot\Handler 目录下,新建一个名为 Web.config 的文件。 |
2. | 将下面的代码添加到 Web.config 中: 在 verb="*" 属性中,我们指示处理程序处理一个使用了任一谓词(如 POST、HEAD、GET 等)的请求。 如果希望此处理程序仅处理 POST 请求,则将它更改为 verb="POST"。 在 path="*.sync" 属性中,我们指示处理程序处理 .sync 文件的任何传入请求。 在 type="MyHandler.SyncHander, MyHandler" 属性中,我们指示处理请求的处理程序在 MyHandler.SyncHandler 名称空间实现,而此类则驻留在 MyHandler 程序集中。 |
测试模块
要测试处理程序,文件系统中不需要有一个页。例如,请求 Handler Web 应用程序中的 Default.sync 文件(http://< 计算机名 >/Handler/Default.sync)。您会看到下面的结果: Hello from custom handler.
评论