2011-11-25 1 views
0

RoleEntryPoint.OnStart() 끝 부분에서 나는 바보 같은 오류가 발생하지 않도록 웹 역할 사이트를 열고 싶습니다.Azure 웹 역할이 배포 된 컴퓨터에서 사이트를 열려고 시도 할 때

WebRequest request = WebRequest.Create("http://127.0.0.1"); 
using(WebResponse response = request.GetResponse()) { 
} 

을하고이 (404) Not Found 텍스트 WebException 실패 : 그래서 다음을 수행합니다. 역할은 포트 80에서 열린 HTTP 끝점을 가지므로 문제가되지 않아야합니다. 그러나 그 코드를 생략하고 역할이 시작되면 http://mysubdomain.cloudpapp.net을 열 수 있습니다.

여기 거래가 무엇입니까? 웹 역할 내에서 웹 역할 사이트의 웹 페이지를 여는 방법은 무엇입니까?

답변

2

127.0.0.1을 사용하지 말고 WebRole에 지정된 InputEndpoint를 사용합니다. 그런 다음 IPEndpoint instace에서 IP Address를 얻을

RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["YourInputEndpointForWebRole"].IPEndpoint 

:

당신은 같은 SODE로에서 IPEndPoint로 인스턴스를 얻을 수 있습니다.

편집

그냥 더블 이유를 확인하기 위해 검사 :

그 이유는 IIS의 웹 사이트에 대한 사이트 바인딩하지 * 점이다 : 80 (일부 nomrally 지역 IIS에서처럼을)하지만 인스턴스의 특정 DIP (직접 (내부) IP 주소)에만 적용됩니다.

+0

왜 그런 식으로 구성되어 있는지 알고 있습니까? – sharptooth

+0

Nope. 그러나 보안의 장래성에서 나는 나의 IIS에서 바인딩을 사용하지 않을 것이지만, 특정 IP 주소로 나는 그 사이트를 묶고 싶다. 또한 Windows Azure는 자체 유지 관리가 가능하고 자체 복구가 가능하며 자체 모니터링 플랫폼 및 완전 자동화 된 플랫폼으로 설계된 클라우드 운영 체제입니다. 여기에 요점은 오류 및 잘못된 구성에 대한 기회를 최소화하는 것입니다. – astaykov

관련 문제