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映射技巧
。