2012-03-05 44 views
1

我已經在visual studio 2010中創建了一個新的web表單應用程序,只有兩個頁面Default.aspxAbout.aspx。我想要的是,當我在Visual Studio開發服務器調試應用程序它,並輸入http://company1.localhost:1023它應該只顯示默認頁面與郵件This is default page for company1。我怎麼能只使用url路由而不是在IIS中進行設置
注意:我知道多租戶是一個很大的詞,不應該用於這樣一個簡單的場景,但我的要求很簡單。我會爲每個沒有擴展點的公司運行同一個應用程序實例。這個問題也可以說我如何以編程方式創建子域名。在asp.net web表單中多租戶

回答

2

您必須爲此工作正確配置IIS(也許DNS)。例如,您的所有子域都應由IIS中的指定網站處理。通常情況下,如果只有一個Web站點,則可以將IIS配置爲處理所有主機頭,但在多個Web站點的情況下,IIS通常配置爲不同主機頭。所以正確配置這個配置對你來說很重要。

一旦你到達正確的網站,資源處理將由IIS元基地完成。因此,在這種情況下,它會重新指向該站點的配置默認資源。如果資源名稱存在,則擴展名(htm,aspx)將決定處理。 Aspx擴展將由ASP.NET處理,然後您只需查找當前主機頭並相應地做出決定。例如,

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (request.Url.HostNameType == UriHostNameType.Dns) 
    { 
     var hostParts = Request.Url.Host.Split('.'); 
     // you may validate if sub-domain name is present or not 
     lblMessage.Text = "This is default page for " + hostParts[0]; 
    } 
} 
+0

我不認爲這對他有幫助。他明確要求解決方案不要使用IIS。不要說我的答案當然更好 – 2012-03-06 09:36:35

+1

@CrabBucket,我猜你錯過了這一點。什麼OP需要在Web服務器級別配置 - 只有當請求能夠成功到達ASP.NET運行時(需要IIS配置)時,包括路由(或任何應用程序/ ISAPI級別代碼)的ASP.NET代碼纔會發揮作用。 。 – VinayC 2012-03-06 11:19:29

+0

我錯過了這一點。這是不同主機的不同默認值。我認爲必須有別的東西。謝謝你 - 我刪除了我的答案 – 2012-03-06 11:39:21