2009-05-22 2 views
8

기존 IIS 6.0 웹 사이트에 기능을 추가하는 작업이 주어졌습니다. 이를 위해 ASP.NET MVC 애플리케이션을 구축했습니다. 자체 사이트로 배포하면 제대로 작동하지만 실제 사이트에 가상 디렉터리로 배포하려고 할 때 작동하지 않는 것 같습니다.IIS 가상 디렉터리가 http : // localhost 대신 http : // computername과 작동하는 이유는 무엇입니까?

서버 이름은 CWEBSERVER이고 IP는 192.168.1.11입니다. IIS 관리자에서보고에서이 사이트의 구조 :

(Default Website) (root) 
    - PRODUCTION (vDir) 
    - CONTENT (not a vDir) 
    - DATAFOLDER (vDir, contains MVC app, just added by me, not working) 

이상한 것은 내가 다음 URL의 서버에 브라우저에서 입력 할 때 작동한다는 것입니다 :

http://localhost/DATAFOLDER/account.aspx 
http://127.0.0.1/DATAFOLDER/account.aspx 
http://192.168.1.11/DATAFOLDER/account.aspx 

다음 URL (이는 내가 일을해야 할 사람은)하지 않는 것입니다 :

http://CWEBSERVER/DATAFOLDER/account.aspx 

내가 점점 오전 오류는 "리소스를 찾을 수 없습니다"입니다.

가까이보고 후, 나는 http://CWEBSERVER에 대한 요청이 생산 VDIR에가는 것을 깨달았지만, http://localhost 또는 http://192.168.1.11 웹 사이트의 루트에가는 호출합니다. 나는 이것이 원래의 사이트 디자이너가 설정 한 것 같아요. 이 설정을 변경하는 방법을 잘 모르겠지만 어쨌든 변경 될 수 있다고 생각하지는 않습니다. 영향을받는 다른 디렉토리가 실제로 많이 있기 때문입니다. 내가 지적하고 싶은 또 다른 점은 콘텐트 폴더가 http://CWEBSERVER/CONTENT으로 갈 수 있다는 것입니다. 이것은 내가 http://CWEBSERVER이 루트를 가리킨다 고 생각했기 때문에 정말로 이상합니다. 그래서 "/ CONTENT"가 실제로 CONTENT 폴더에 도착할 것이라고 생각하지 않을 것입니다.

지금 내 문제는 다음과 같습니다. http://CWEBSERVER/DATAFOLDER을 통해 어떻게 데이터 폴더에 액세스 할 수 있습니까? 나는 DATAFOLDER vDir 을 PRODUCTION vDir의 안에 넣어야한다고 생각합니다. 나는 그것을 시도하고 로컬 호스트를 사용하거나 IP이를 통해 계속 액세스 할 수 있습니다 :

http://localhost/PRODUCTION/DATAFOLDER/account.aspx 
http://127.0.0.1/PRODUCTION/DATAFOLDER/account.aspx 
http://192.168.1.11/PRODUCTION/DATAFOLDER/account.aspx 

내가 CWEBSERVER를 사용하는 경우, 그러나, 여전히 실패 :

http://CWEBSERVER/DATAFOLDER/account.aspx 

오류는 여전히 "자원이 될 수있다 녹이다.". 누구든지 이것에 대해 밝힐 수 있습니까?

  1. 어떻게 http://localhost 루트로 이동 않으며, http://CWEBSERVER가 생산 VDIR로 이동 : 특히, 나는이 질문이? 이 설정은 어디에서 변경할 수 있습니까?
  2. "http://localhost/PRODUCTION/DATAFOLDER/account.aspx"은 작동하지만 "http://CWEBSERVER/DATAFOLDER/account.aspx"이 아닌 이유는 무엇입니까? 내가 http://CWEBSERVER/DATAFOLDER/account.aspx에 액세스 할 수 있도록

(현상금이에 수여됩니다)이 질문에 대한 허용 대답은 그것을 만들 수 있어야합니다. 감사!

+0

당신이 어떤 오류를 얻고있다 http://computername.domain 이름을 액세스 할 수 있습니까? –

+0

ping cwebserver 그리고 귀하의 URL에 해당 IP 주소를 사용하고 그것이 작동하는지 확인하십시오. 이것은 dns/firewall 문제인지 또는 문제인지 여부를 알려줍니다. –

답변

11

대부분의 경우 IIS는 IP 주소에만 바인딩되어 있습니다. IIS 관리자로 이동 한 다음 웹 사이트의 속성으로 이동하십시오. 그런 다음 웹 사이트 탭에서 등록 정보로 이동하십시오.

해당 호스트 헤더 값에 대한 ID를 추가하십시오.

필요한 경우 여러 개의 바인딩을 추가 할 수 있습니다.

갱신

는 내가 지금 뭘 원하는지 생각합니다. IIS 관리자에서 기본 웹 사이트를 확장하십시오. 그런 다음 프로덕션 가상 디렉터리를 마우스 오른쪽 단추로 클릭하고 "가상 디렉터리 만들기"를 선택합니다. 이 새 데이터 폴더를 호출하십시오. 그런 다음 파일 시스템의 기존 위치에 연결하십시오.

정말 조금 정리해야한다고 생각합니다. 내가 할 첫 번째 일은 모든 일이 실제로 어떻게 이루어져야하는지 결정하는 것입니다. 즉, 입력 할 때 http://www.mysite.org/ 그게 무엇입니까? PRODUCTION 디렉토리 인 경우 새 사이트을 만들고 PRODUCTION 디렉토리로 지정한 다음 DATAFOLDER 가상 응용 프로그램을 만듭니다. 이 % windir %/System32/드라이버/etc/hosts 파일 크리스 같은

+0

팁 주셔서 감사합니다. 내가 ID의 목록을 볼 때, 포트 80에 대한 "Default"만 보입니다. 찾은 정보를 추가했습니다. 당신의 도움에 감사드립니다! 나는 당신이 나에게 말할 수있는 무엇이든을위한 아주 고맙게 여긴다. – skb

+0

업데이트 해 주셔서 감사합니다. Chris. PRODUCTION vDir 아래에 DATAFOLDER vDir을 추가하려고했지만 어떤 이유로 www.mysite.org/DATAFOLDER를 사용하여 액세스 할 수 없습니다. localhost/PRODUCTION/DATAFOLDER하지만 작동합니다. www.mysite.org가 PRODUCTION vDir로 이동하는 이유를 먼저 파악할 수 있지만 localhost가 웹 사이트의 루트로 이동하면 도움이 될 것으로 생각합니다. 어쩌면 내가이 차이를 이해할 수 있다면, 나는 아직도 일을하지 못하는 것을 볼 수있다. 어떤 아이디어? – skb

+0

정말로 바인딩으로 다시 시작해야합니다. 그것은 PRODUCTION에 대한 가상 디렉토리가 생겨서는 안될 때 만들어졌습니다. 새 사이트로 시작하여이 사이트에 www.mysite.org 바인딩을 지정하고 PRODUCTION 디렉토리를 가리 킵니다. 그런 다음 데이터 폴더를 가리키는 가상 디렉터리를 추가하십시오. – NotMe

0

추가 '192.168.1.11의 cwebserver'활기찬 말했고, 다른 호스트 이름에 대한 더 많은 바인딩을 추가하거나에 대한 설정을 사용하여 새 사이트를 추가 동일한 콘텐츠. IIS는 호스트 헤더 정보를보고 응답하며 포트 80에 대한 단일 바인딩 만있는 기본 웹 사이트 만 있으면 모든 가능한 헤더를 처리하지 않습니다.

이름이 회사 이름이나 내부 DNS 항목과 같은 회사 내부 이름 인 경우 기본 바인딩에서 해당 작업을 수행하도록 할 수 있습니다. 테스트에서 작동하지 않으면 해당 상황에 대한 바인딩을 추가하십시오 (CWEBSERVER 또는 mysite.org). 두 가지 방법으로 작동하는 것에 신경 쓰면 www가 있는지 여부에 관계없이 테스트하십시오.

동일한 콘텐츠에 대해 IIS에 여러 개의 "사이트"를 추가하는 데는 단점이 없습니다. 예를 들어, 당신은

mysite.org이

marketingsite.com 그런 다음 /PRODUCTION/DATAFOLDER/index.html

지적 /PRODUCTION/DATAFOLDER/index.html을 지적 할 수 당신 다른 SSL 설정 등을 할 수 있습니다. 내 웹 서버에서 뭔가 잘못되면 (새 외부 IP 주소를 설정하고 아직 바인딩을 수정하지 않은 것처럼) 기본 웹 사이트를 공격하지 않습니다.

독을 선택하십시오. 그러나 기본적으로 모든 가능한 주소를 처리 할 때까지 IIS에서 설정을 추가하면됩니다.

+1

감사합니다. 그러나 이것은 문제가 아닙니다. 다른 컴퓨터에서도 액세스 할 수 있어야합니다. – skb

1

할 수

+0

나는 당신이 참조한 것과 정반대로 노력하고 있습니다. 동일한 콘텐츠에 대해 여러 개의 '사이트'를 원하지 않습니다. 이질적인 콘텐츠를 하나의 사이트에 "병합"하고 싶습니다. 기본 사이트가 있습니다. 이 사이트는 "www.mysite.org"가 가리키는 PRODUCT vDir을 가지고 있습니다 (BTW,이 vDir이 "www.mysite.org"의 "루트"가되는 방법을 알 수는 없지만 "localhost"는 아니요, vDir 또는 사이트에 대한 설정이 표시되지 않습니다. localhost는 신경 쓰지 않고 mysite.org/DATAFOLDER가 별도의 vDir을 가리킬 필요가 있습니다. 이것이 가능한가? – skb

5

전체 답변 목록을 살펴 보지 못했지만 다음과 같은 방법으로이 솔루션을 발견했습니다. 내 웹 페이지 링크는 localhost으로 작동하지만 IP 또는 컴퓨터 이름으로는 작동하지 않습니다. GREAT IE (****)의 경우 오류가 없습니다.

이 문제를 해결하기 위해 IE의 신뢰할 수있는 사이트에 사이트를 추가했습니다.

일부 좌절감을 줄일 수 있습니다.

+0

예, 많은 좌절을 막습니다! 감사! – DrCord

2

정적 IIS를 임시 IIS 서버에 할당하여 비슷한 문제가 발생했습니다. (동적 IP 주소와 동일한 IP 주소를 192.168.56.101과 같이 할당했습니다.)

누군가에게 도움이 될 수 있습니다.

방화벽 설정에 대해서도 this을 확인하십시오.나를 위해

1

는 방화벽 문제였다

  1. 로 이동 : 제어판 -> Windows 방화벽 -> Windows 방화벽을 통해 목록의 맨 아래로

  2. 스크롤 프로그램 또는 기능 허용하고 www 서비스 (http)에 대한 확인란을 선택하십시오.

  3. 지금 저장

내가

관련 문제