为什么UrlRewrite在调试通过,但上传到服务器就找不到文件?
本地调试:http://localhost:2222/Test/324.aspx 会显示324
服务器  :http://chjl.cn/Test/324.aspx 就找不到文件了,大家可以进入看看
而在服务器新建一个/test/324.aspx也可以通过,为什么会这样?--------------------------------------------------------------------------------
/test/read.aspx<%
Response.Write(Request["ID"]);
%>
--------------------------------------------------------------------------------/UrlRewrite.config<?xml version="1.0" encoding="gb2312" ?>
<NewDataSet>
<rule>
<old>/Test/(\d+)\.aspx</old>
<new>/Test/Read.aspx?ID=$1</new>
</rule>
</NewDataSet>
--------------------------------------------------------------------------------global.asax.cs中 protected void Application_BeginRequest(Object sender, EventArgs e)
{
 
DataSet dataSet =new DataSet();
dataSet.ReadXml(this.Server.MapPath("/UrlRewrite.config")); DataTable table=dataSet.Tables[0]; string rawUrl=Request.RawUrl;
Regex regex;
foreach(DataRow row  in table .Rows)
{
regex=new Regex(row["old"].ToString(), RegexOptions.IgnoreCase);
if(regex.IsMatch(rawUrl))
{
Context.RewritePath(regex.Replace(rawUrl, row["new"].ToString()));
break;
}
}
}
--------------------------------------------------------------------------------

解决方案 »

  1.   

    http://chjl.cn/Test/33.aspx 就可以正常显示为33。因为我在服务器/test下新建了33.aspx。为什么会这样。
      

  2.   

    在本地高度时不论是有没有存在33.aspx都是可以正常显示33的。
      

  3.   

    你这一句
    http://localhost:2222/Test/324.aspx 
    表示你的是一个站点,而
    http://chjl.cn/Test/324.aspx 
    这一句,你是个虚拟目录,所以两者看起来一样,但实际上对不上号.
    你在本地把你的网站改为虚拟目录,然后再在本地运行,此时本地可能也不行.
    你需要修改你的路径.
      

  4.   

    虚拟路径在本地和服务器上测试都是一样的
    <%
    Response.Write("Request.ApplicationPath=" +Request.ApplicationPath);
    Response.Write("<br>");
    Response.Write("Request.Path=" + Request.Path);
    Response.Write("<br>"); Response.Write("Request.PathInfo=" +Request.PathInfo);
    Response.Write("<br>");
    Response.Write("Request.QueryString=" +Request.QueryString);
    Response.Write("<br>");
    Response.Write("Request.RawUrl=" +Request.RawUrl);%>Request.ApplicationPath=/
    Request.Path=/Test/a.aspx
    Request.PathInfo=
    Request.QueryString=
    Request.RawUrl=/Test/a.aspx
      

  5.   

    建立*.*到aspnet_isapi.dll的映射就可以
      

  6.   

    这样需要在iis控制台操作呀,我哪里有这样的权限?