正文

c#写的asp.net程序url重写问题,解决有分2006-08-10 14:40:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/Csharpsky/17457.html

分享到:

对于高手来说,这个问题是老生常谈了 可我一直很困惑,不知道如何在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 处理程序 概要 实现处理程序 部署处理程序 配置系统 测试模块 参考 .toc{display: none;} 概要 本分步指南演示如何使用 Visual C# .NET 创建简单的自定义 HTTP 处理程序。本文演示如何创建、部署和配置该处理程序。 实现处理程序 1. 打开 Microsoft Visual Studio .NET。 在 Visual C# .NET 中,新建一个名为 MyHandler 的类库项目。 2. 设置一个对 System.Web.dll 程序集的引用。 3. 将以下指令添加到该类中: using System.Web; 4. 重命名类 SyncHandler.cs,然后相应地更改类定义。 5. 实现 IHttpHandler 接口。您的类定义应如下所示: public class SyncHandler : IHttpHandler 6. 实现 IHttpHandler 接口的 IsReusable 属性和 ProcessRequest 方法。因为这是一个同步处理程序,所以为 IsReusable 属性返回 False 以使该处理程序不共用。 public bool IsReusable { get {return false;} } public void ProcessRequest(HttpContext context) { context.Response.Write("Hello from custom handler."); } 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 应用程序: a. 打开 Internet 服务管理器。 b. 右键单击 Handler 目录,然后单击属性。 c. 在目录选项卡上,单击创建。 5. 按照下列步骤为该处理程序创建一个应用程序映射。对于此处理程序,为 *.sync 扩展名创建一个到 Aspnet_isapi.dll 文件的映射。每当请求 .sync 文件时,该请求就会被路由到 ASP.NET,由 ASP.NET 执行处理程序中的代码。 a. 右键单击 Handler Web 应用程序,然后单击属性。 b. 在目录选项卡上,单击配置。 c. 单击添加以添加一个新映射。 d. 在可执行文件文本框中,键入下面的路径: C:\WINNT\Microsoft.NET\Framework\< 版本号 >\Aspnet_isapi.dll e. 在扩展名文本框中,键入 .sync。 f. 确保清除了“检查文件是否存在”复选框,然后单击确定以关闭添加/编辑应用程序扩展名映射对话框。 g. 单击确定以关闭应用程序配置和处理程序属性对话框。 6. 关闭 Internet 服务管理器。 配置系统 1. 在 C:\Inetpub\Wwwroot\Handler 目录下,新建一个名为 Web.config 的文件。 2. 将下面的代码添加到 Web.config 中: <configuration> <system.web> <httpHandlers> <add verb="*" path="*.sync" type="MyHandler.SyncHandler, MyHandler" /> </httpHandlers> </system.web> </configuration>在 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.

阅读(3910) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册