2017-10-27 1 views
0

IIS7 제공 .Net 웹 응용 프로그램 (단순 데이터베이스 사이트).IIS는 서버 이름 대신 로컬 호스트 URI를 제공합니다.

요소의 backgroundimage (URL) 속성이 "http : \ servername"대신 "http : \ localhost"로 제공되는 이상한 문제가 있습니다. 이것은 사용자가 내 사이트에 연결할 때 "localhost"가 IIS 서버가 아닌 워크 스테이션이되기 때문에 문제가됩니다. 따라서 이미지 (이 경우 버튼)는 비어 있습니다.

간헐적으로 문제가 해결되면서 응용 프로그램 풀을 재활용 한 다음 다시 돌아 오는 것으로 보입니다. IIS 서버는 ~ 28/36GB RAM을 먹는 SQL 인스턴스도 실행합니다.

사람은 지금까지 이런 일을 본 적있어?

+0

그것은 괜찮습니다 당신은 이미지를 게재하려면 로컬 호스트에서 귀하의 컴퓨터가 로컬로 호스트되기 때문입니다. 로컬 호스트는 웹 사이트를 배포하는 대부분의 모든 서버가 localhost 자체 일 가능성이 높기 때문에 유용 할 수 있습니다. 다른 컴퓨터는 웹 사이트를 호스팅하는 서버의 공용 도메인/네트워크 이름을 사용해야합니다. –

+0

이 경우 URL은 localhost가 아니라 servername이되어야합니다. 내 사용자는 로컬 사이트가 없으며 서버 호스트 이름을 통해 액세스하고 있습니다. –

+0

IIS에서 도메인 이름 (URL)을 설정하고 웹 사이트에 바인드해야합니다. Localhost는 일종의 지름길입니다. localhost를 사용하여 경로를 지정하면 해당 호스트가 구성된 모든 서버에서 작동 할 수 있습니다. 그러나 외부에서 액세스하는 모든 리소스는 IIS의 사이트에 대해 설정 한 도메인 이름을 사용해야합니다. 또한 위의 이미지를 찾고 하드 코딩 된 "localhost"를 제거하고 동적 경로로 교환해야합니다. –

답변

0

이 문제를 해결하려면 웹 응용 프로그램에서 "http : \ localhost"가 하드 코드 된 모든 위치를 검색하고이를 동적 경로로 바꾸어야합니다. localhost가 서버와 관련된 경우 코드에서 작동 할 수 있지만 링크와 같이 작동하지 않는 경우가 있습니다. 당신은 결코 당신의 URL을 하드 코드하지 않는 습관에 빠져 있어야합니다.

value = ResolveUrl("~/") + "Images/MyImage.png" 

또는 상대 경로 지정 - - 당신이 양식을 사용하는 경우

value = Url.Content("~/Images/MyImage.png"); 

- 당신이 MVC를 사용하는 경우

value = "~/Images/MyImage.png" 
+0

나는 그것이 적어도 내가 아는 바에 따라 하드 코딩 된 것으로 믿지 않는다. 하드 코딩 된 URL이있는 유일한 곳은 DB에 있으며 올바른 'servername'URL이 포함되어 있습니다. 사용자가 http : \\ servername \ site를 통해 사이트에 접속하면 어떻게됩니까? 특정 페이지의 특정 요소로 이동하면 IIS는 URL을 올바른 URL 대신 "http : \\ localhost"로 제공합니다. 따라서 IIS는 특정 상황에서 올바른 URL을 제공합니다. –

+0

위의 방법 중 하나를 사용하는 경우 ->title 형식의 이미지 참조가 표시됩니다. 당신은 그것이 localhost와 같은 전선을 통해오고 있다고 말합니다. 해당 링크가 생성되는 코드를 파고 들고 마크 업을 게시 할 수 있습니까? –

+0

여기에 해당 요소가 있습니다. 변경 사용자 계산 된 CSS : .ButtonMainTable .ButtonCellMidurl ("HTTP : //localhost/DP/Images/Buttons/Regular/Mid_2.gif") 당신이 볼 수 있듯이, 어떤 이유로 든 URL은 ServerName이 아닌 "Localhost"로 제공됩니다.Dev 도구에서 URL을 수동으로 편집하고 "localhost"를 "servername"으로 변경하면 img 소스가 유효 해지고 작동합니다. –

관련 문제