首页 新闻 会员 周边

伪静态 IIS的一个问题

0
悬赏园豆:40 [已关闭问题] 关闭于 2010-06-18 12:36

本人自己写个伪静态,

在vs里运行没有问题。但是在IIS里肯定会报404,

有没有什么办法解决呢??我现在用的是iis7,最后也讲讲其他版本的IIS

问题补充: 配置文件: <add verb ="*" path="*.html" type="UrlWriter"/> HttpHandler using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> ///UrlWriter 的摘要说明 /// </summary> public class UrlWriter : IHttpHandler { public UrlWriter() { // //TODO: 在此处添加构造函数逻辑 // } //本人想自己写个伪静态。在vs上可以运行。在iis不能运行。 public void ProcessRequest(HttpContext context) { //http://localhost:5906/UrlWriter/Default_id_3.html //id代表参数名;3代表参数的值! //物理路径 string url = context.Request.Url.ToString(); string urlNew = url.Substring(url.LastIndexOf('/') + 1, url.LastIndexOf('.') - url.LastIndexOf('/') - 1); //参数值 string arg = ""; //参数名 string type = ""; //是否有参数 bool isHas = false; foreach (char item in urlNew) { if (item == '_') { arg = urlNew.Substring(urlNew.LastIndexOf('_') + 1); type = urlNew.Substring(urlNew.IndexOf('_') + 1, urlNew.LastIndexOf('_') - urlNew.IndexOf('_') - 1); isHas = true; } } if (isHas) { string name = urlNew.Substring(0, urlNew.Length - arg.Length - type.Length - 2); context.Server.Execute(name + ".aspx?" + type + "=" + arg); } else { context.Server.Execute(urlNew + ".aspx"); } } public bool IsReusable { get { return true; } } }
Emrys5的主页 Emrys5 | 菜鸟二级 | 园豆:223
提问于:2010-06-16 10:21
< >
分享
所有回答(2)
0

在vs下面是将所有的url交与asp.net解析的

那你应该是用的urlrewrite吧?

在iis7里面:将urlrewrite的module从webconfig中的httmodule节点移动栋module节点即可(当然iis7下你使用的是集成模式)

如果是iis6就麻烦一下:简单点就是在通配符映射里面将*.*映射到aspnet_isapi.dll即可,如果不知道怎么操作网上找找。

LittlePeng | 园豆:3445 (老鸟四级) | 2010-06-16 12:14
0

如果按照楼上的方法后还不行。

为什么不使用MS的URL重写组件,也是开源的,可以研究下。

Astar | 园豆:40805 (高人七级) | 2010-06-17 10:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册