ASP.NET中的URL映射技巧_.Net教程
推荐: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
- 相关链接:
- 教程说明:
.Net教程-ASP.NET中的URL映射技巧。