2010-03-17 71 views
2

我的編輯,這不是在URL需要一定的網站,該網站之前使用的80端口(默認)(因爲它是默認..)在asp.net中的URL開始時,究竟做了什麼〜

但端口有(因技術原因)被改變了,現在它必須被通知。像這個端口\頁:

我可以通過IP訪問主頁

1.2.3.4:81\page.aspx 

在網站上每一個環節是由這樣的:

<asp:HyperLink runat="server" Text="random" NavigateUrl="~/fdr/whatever.aspx" /> 

每當我點擊一個鏈接,該頁面沒有加載,但是URL是在瀏覽器的URL欄中編寫的,那麼我只需在URL中添加「:80」就可以了。

由於查詢字符串的存在(換句話說,因爲已經可以訪問該URL),我之前認爲鏈接中某個URL的開頭的'〜'是「保留在同一個網站中,只是改變到這個文件夾中的這個網頁「,但是如果端口消失,我現在假設地址被請求(可能到IIS)當前網站的位置。

我想知道那麼(而不是必須將端口添加到我的網站中的每個鏈接)我該如何設置誰被請求的鏈接〜以某種方式添加端口。我怎麼做?

- [編輯] -
檢查我的更多信息這另一個問題:

URL losing port number in every page load

回答

2

它指向asp.net應用程序的當前根目錄(可能住在網站的子目錄中)。它允許鏈接根據應用程序是否位於根文件夾中而獨立編碼。

端口/域從不是遊戲的一部分。端口被假定爲80-通過您的瀏覽器。

也就是說,請將技術原因從80端口移出應用程序?我知道沒有一個有效的理由,對不起);

+0

如果我確切地知道它爲什麼被改變,我會說。讓我們有技術上的原因:(這不是我自己做這種事情,然後我只是幫助,我會測試它試圖改變到:80.然後關於這個問題,你說沒有方式不通知每個鏈接端口?這是一個瀏覽器的事情,假設它是80,而不是IIS的東西總是發回:80?ouch ..你可以確認嗎?:( – Marcelo 2010-03-17 12:30:19

+0

有可能有理由離開端口80 ...就像當默認網站(作爲SBS2003的一部分安裝)被設置爲使用SSL時,在該網站下建立一個網站沒問題,但在其下建立SSRS是一個龐大的PITA。 – slugster 2010-03-17 12:30:50

+0

Slugster,似乎我知道你在asp.net有一些技術訣竅,你可以回答它並給我定位,在請求中添加端口嗎?我應該怎麼做? – Marcelo 2010-03-17 12:33:09

1

~符號被稱爲應用程序根操作符。你可以閱讀更多關於它here (MSDN)和引用:

ASP.NET解決了〜運算符來 根當前應用程序的。您可以使用〜操作符 和文件夾來指定基於當前根目錄的路徑 。

下面的示例示出了使用時 使用圖像服務器控制在該 實例來指定圖像的 根目錄相對路徑的〜 操作者,該圖像文件從 讀取位於 圖像文件夾直接位於Web 應用程序的根目錄下,而不管該頁面位於的網站的 的哪個位置。

它本質上是屬性System.Web.HttpRuntime.AppDomainAppVirtualPath的快捷方式。