正文

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 处理程序

概要

本分步指南演示如何使用 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.

阅读(3816) | 评论(1)


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

评论

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