ASP.NET中的URL映射技巧_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:ADO.NET中的Connection对象详解
连接字符串 连接字符串的几个常用参数: Provider:这个属性用于设置或返回连接提供程序的名称,仅用于OleDbConnection对象。 Connection Timeout或Connect Timeout:在中止尝试并产生异常前,等待连接到服务器的连接时间长度(以秒为单位)。默认是15秒。 Initail Catal

 在项目中经常要进行如下映射


http://yyjcw.com/a.aspx?name=llinzzi
映射到
http://yyjcw.com/llinzzi
首先要解决2个问题
第一是支持通配符的映射 URL映射是asp.net2.0新增的功能,不支持通配符
于是采用了NBEAR的 NBear.Web.Modules.UrlRewriteRules 进行通配符映射

 


<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <configSections>
    <section name="UrlRewriteRules" type="NBear.Web.Modules.UrlRewriteRules, NBear.Web"/>
  </configSections>
  <UrlRewriteRules>
    <Rule key="/(.*)/" value="/a.aspx?name=$1" />
    <Rule key="/(.*)" value="/a.aspx?name=$1" />
  </UrlRewriteRules>  
  
  <appSettings/>


 

  <system.web>

    <sessionState timeout="200" />
    <httpModules>
      <add type="NBear.Web.Modules.UrlRewriteModule, NBear.Web" name="UrlRewriteModule"/>
    </httpModules>
    
    <!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
        <compilation debug="true" defaultLanguage="c#" />
        <!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        -->
        <authentication mode="Windows"/>
        <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
    </system.web>
</configuration>

vs2005里进行测试成功,但放到IIS里失败

检查了几次,没发现问题,仔细想了想

先了下,iis的工作流程应该是遇到.aspx扩展名,交给.net处理,然后才能调用httpModules进行url映射
http://yyjcw.com/llinzzi
没有aspx扩展名,所以iis直接当成文件架,返回404错误了
而vs2005里的调试web服务器把所有的请求都发给了.net处理,所以成功.
于是更改映为
  <Rule key="/(.*)/index.aspx" value="/a.aspx?name=$1" />
浏览
http://yyjcw.com/llinzzi/index.aspx
测试成功.
开心,把index.aspx设置成默认文档
测试http://yyjcw.com/llinzzi/;结果还是404错误
想了下iis认为llinzzi文件夹不存在,自然就没用默认文档去访问

郁闷,想了很多方法,均失败
难道要用 llinzzi/index.html访问?难道要生成真是存在的文件夹?
都不是理想的方案

分享:Asp.net配合easyui实现返回json数据实例
最近想用asp.net配合easyui开发一个小框架,然后再用到easyui的combobox的时候出现了一个问题,总所周知,easyui的文档上给出的combobox的格式是 代码如下:input class=easyui-combobox name=language data-options= url:'../combobox/combobox_data1.json', valueFiel

共2页上一页12下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2015-01-30
相关.Net教程