2010-03-17 5 views
2

URL에 필요하지 않은 포트 80 (기본값)을 사용하고있는 특정 웹 사이트를 편집 중입니다. (기본값이기 때문에 ..)asp.net의 URL 시작 부분에서 ~은 정확히 무엇을합니까?

그러나 기술적 인 이유로 인해 포트가 변경되어 그것은 통보 받아야한다. 이 같은 포트 \ 페이지 :

1.2.3.4:81\page.aspx 

웹 사이트에있는 모든 링크는 다음과 같이 구성되어있다 :

나는 IP를 통해 메인 페이지에 액세스 할 수 있습니다

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

을 그리고 때마다 나는 링크를 클릭 페이지가로드되지 않지만 브라우저의 URL 표시 줄에 URL이 구성된 경우 URL의 IP 뒤에 ": 80"을 추가하면됩니다.

쿼리 스트링이 존재하기 때문에 (즉, URL에 이미 액세스하고 있기 때문에) 나는 링크의 URL 시작 부분에있는 '~'가 "동일한 웹 사이트에 계속 있고, 이 폴더에있는이 웹 페이지에 "있지만 포트가 사라지면 주소가 현재 웹 사이트의 위치에 대해 (아마도 IIS에) 요청되었다고 가정합니다.

(내 웹 사이트의 각 링크에 포트를 추가하는 대신) ~ 어떻게 링크를 요청했는지 설정하려면 포트를 추가하는 방법을 알고 싶습니다. 어떻게해야합니까?

- [편집] -
확인 대한 추가 정보를 원하시면 나의이 다른 질문 :

URL losing port number in every page load

답변

2

그것은합니다 (asp.net 응용 프로그램의 현재의 루트 디렉토리를 가리키는 수도 웹 사이트의 하위 디렉토리에 있습니다.) 앱이 루트 폴더에 있는지 여부에 관계없이 링크를 독립적으로 코딩 할 수 있습니다.

포트/도메인은 절대로 게임에 포함되지 않습니다. 포트는 귀하의 브라우저에서 80으로 가정됩니다.

그렇다면 포트 80에서 앱을 옮기는 기술적 이유는 무엇입니까? 하나의 유효한 이유가 아님) 죄송합니다.

+0

내가 왜 그것이 바뀌 었는지 정확히 알고 있다면, 나는 그것을 말할 것입니다. 기술적 인 이유가 있습니다. (이런 종류의 일을하는 것은 제게 달려 있지 않습니다. 그렇다면 지금 막 돕고 있습니다. 80로 바꾸려고 시도 할 것입니다. 그런 다음 질문에 대해서는, 방법은 각 링크의 포트를 알려주지 않으려 고합니다. 브라우저를 사용하여 80이라고 가정하면 IIS가 아닌 다음과 같이 항상 되돌려 보낼 수 있습니다. 80? 아 .. 그걸 확인해 주시겠습니까? :( – Marcelo

+0

이동할 이유가있을 수 있습니다. 포트 80 ... 기본 웹 사이트 (SBS2003의 일부로 설치됨)가 SSL을 사용하도록 설정되어있는 경우처럼 사이트를 설정하는 것은 괜찮지 만 그 아래 SSRS를 설정하는 것은 거대한 PITA입니다. – slugster

+0

Slugster, 당신은 asp.net에서 몇 가지 노하우를 가지고 있습니다. 당신은 그것을 대답하고 요청에 항구를 추가 할 방향을 주시겠습니까? 어떻게해야합니까? – Marcelo

1

~ 부호를 응용 프로그램 루트 연산자라고합니다. 당신은 here (MSDN)에 대한 자세한 내용을보실 수 있습니다 및 인용 :

ASP.NET은 현재 응용 프로그램의 루트에 ~ 연산자를 해결합니다. ~ 과 함께 ~ 연산자를 사용하여 현재 루트를 기반으로 경로를 지정할 수 있습니다.

다음 예는 본 예에서, 콘텐츠 서버 컨트롤을 사용하는 경우 화상하는 루트 상대 경로를 지정하는 데 사용 ~ 연산자를 나타내고, 화상 파일 에서 위치해 이미지 폴더를 읽어 웹 사이트의 위치에 관계없이 페이지가있는 웹 응용 프로그램의 루트 바로 아래에 있습니다.

이것은 본질적으로 속성 System.Web.HttpRuntime.AppDomainAppVirtualPath의 바로 가기입니다.

관련 문제