2009-09-11 27 views
0

我們有一個測試站點只能通過IP地址託管。我們確實需要測試一些功能,這取決於某人用於訪問該網站的子域名。但是,我們當然甚至不能在只有IP的網站上使用子域名。網址重寫,臨時解決方案,ASP.Net 3.5

所以,我想過是不是子域,我們可以有測試人員打開該網站,像這樣的URL:http://192.168.0.1/smithhttp://192.168.0.1/jones,我會再重定向到http://192.168.0.1/default.aspx?site=smith等等

我們測試人員在客戶端,並要求他們輸入查詢字符串會有問題。另外,我真的很想介紹一下URL重寫的快速介紹。

任何人都可以給我任何想法,如果我想要做什麼是可能的,如果是這樣,一個指向一些代碼或解釋什麼的?

我相信我們正在使用asp.net 3.5和iis6。

感謝您的幫助!

回答

2

我寫了我的博客上介紹了​​,什麼它的價值。請隨時在此發佈更多問題,以澄清您擁有的任何具體問題。

+1

這很好。開銷也很少。 – 2009-09-12 04:24:33

1

您可以將測試機器上的主機文件更改爲指向該IP的域名(和子域名),這樣您就不必依賴DNS並可以像域名被分配一樣進行測試。

更多信息這裏:

http://labnol.blogspot.com/2004/10/tweak-your-windows-hosts-file.html

+0

很好的答案,但不會在我們的情況下工作。我們不知道測試機器 - 他們中有將近100人排隊在美國各地,並試圖讓他們全部更新主機文件,這真的會讓我們的客戶感到惱火。再次,好主意。 – 2009-09-11 02:58:00

+0

哇,我們的測試人員是我們的銷售人員... – 2009-09-11 03:10:39

+0

:)好的測試人員在黃金價格上是值得的。 – 2009-09-12 04:25:57

1

這將definitly在你的情況下工作 http://www.urlrewriting.net/149/en/home.html

,我們已經實現了同樣的你需要的是,其開源的dll,你需要寫在web.config中的一些規則,根據您的scanario,您的規則的東西像

<add name="index" virtualUrl="^~/(.*)/Default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Default.aspx?site=$1&amp;urw=t" ignoreCase="true"/> 
1

這是淨3.5的一部分,是MVC使用的 相同的機制

這使您的生活更輕鬆,因爲一切都在HttpContext.CurrentContext.Items舉行的事實[ 「」]

我已經適應了這個代碼爲一些項目,我有一個XML配置文件。然後我使用這個文件來構建RouteCollection。此代碼也很容易擴展到處理301重定向搜索引擎優化。

此方法在您的AppPool中也會加載一次,並且不需要爲每個調用解析xml文件和配置。迄今爲止,這一直是我明智表現的最佳解決方案。

如果您需要任何幫助,請告訴我。我會很樂意伸出援助之手。

編輯:13/09/09

,因爲我通常在每一個頁面處理會員/認證驗證我還沒有遇到這個問題呢。我通常會在頁面上調用一個控件或方法來驗證/授權用戶。我的客戶很少使用ASP.Net成員,他們通常依賴我們需要連接的專有子系統。

我已經擴展了上述鏈接中提供的示例,以便我可以編寫一個xml路由表,在應用程序啓動時或強制RouteCollection更新時加載該路由表。

到目前爲止,這已證明自己工作得很好。 這也可以允許在應用程序運行時更改路線,而不會停機。

+0

你的例子很好用,但是當我將它插入到我的解決方案中時,它並沒有打到我的MSO對象。我相信這是由於ASPNet會員服務。所有請求,如果尚未登錄,則重定向到login.aspx。我認爲這個處理程序在我之前運行,所以我沒有機會處理它。 有什麼建議嗎?否則,我愛你的方法。很酷。 – 2009-09-12 03:05:35